Javascript 如果未找到打印,请检查数组中是否存在元素

Javascript 如果未找到打印,请检查数组中是否存在元素,javascript,arrays,element,Javascript,Arrays,Element,我是JS的新手。我的任务是: 给定姓名和电话号码,组装一个电话簿,将朋友的姓名映射到他们各自的电话号码。然后,您将获得一个未知数量的姓名,以查询您的电话簿。对于每个查询的项目,以name=phoneNumber的形式在新行上打印电话簿中的相关条目;如果未找到的条目,请改为“未找到打印” 注意:您的电话簿应该是字典/Map/HashMap数据结构 输入格式 第一行包含一个整数,表示通讯录中的条目数。 随后的每一行以空格分隔的值的形式在一行上描述一个条目。第一个值是一个朋友的名字,第二个值是一个数字

我是JS的新手。我的任务是:

给定姓名和电话号码,组装一个电话簿,将朋友的姓名映射到他们各自的电话号码。然后,您将获得一个未知数量的姓名,以查询您的电话簿。对于每个查询的项目,以name=phoneNumber的形式在新行上打印电话簿中的相关条目;如果未找到的条目,请改为“未找到打印”

注意:您的电话簿应该是字典/Map/HashMap数据结构

输入格式

第一行包含一个整数,表示通讯录中的条目数。 随后的每一行以空格分隔的值的形式在一行上描述一个条目。第一个值是一个朋友的名字,第二个值是一个数字的电话号码

在电话簿条目行之后,有未知数量的查询行。每一行(查询)都包含一个要查找的行,您必须继续阅读这些行,直到没有更多的输入

注:姓名由小写英文字母组成,仅为名字

这是我的密码。但我无法检查数组中是否存在名称。你没用吗

function processData(input) {
//Enter your code here
const  n = parseInt(input);
const  d = [];
for (var i = 1; i <= n; i++){
    var line = input.split('\n').splice(i,1);
    let x = line[0].split(" ");
    d[x[0]] = x[1];
}
console.log(d)
let m = n;
while (true){
    try{
        name = input.split('\n').splice(m+1,1);
        if ( d.includes(name)){
            console.log(name,'=',d[name])
        } else console.log('Not found')
        m +=1;
    }
    catch(err){
        break
    }
}
函数processData(输入){
//在此处输入您的代码
const n=parseInt(输入);
常数d=[];

for(var i=1;i
name
是数组上的
拼接
的结果,这意味着它是一个数组,但您已经用字符串填充了
d
,因此
d.includes(name)
正在字符串数组中寻找一个新创建的数组。任何数组都不等于字符串(不进行转换,
包括
不进行转换)

如果您想将
name
作为使用
splice
从数组中删除的条目(因为它返回一个删除条目的数组),则需要在末尾使用
[0]
来获取它:

name = input.split('\n').splice(m+1,1)[0];
// −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−^^^
我没有仔细阅读代码来查找其他问题,但这至少会在字符串数组中查找字符串,而不是在字符串数组中查找数组



旁注:您似乎依赖于获取一个错误来停止循环,但请注意,在JavaScript中,访问数组末尾以外的内容并不是错误,您只需获取值
未定义

请添加一个显示实际问题的值。输入示例将非常有用3 sam 9991222 tom 1112222 harry 12299933 samedward harryit是一个简单的输入示例输出sam=99912222未找到harry=12299933