Javascript 如果未找到打印,请检查数组中是否存在元素
我是JS的新手。我的任务是: 给定姓名和电话号码,组装一个电话簿,将朋友的姓名映射到他们各自的电话号码。然后,您将获得一个未知数量的姓名,以查询您的电话簿。对于每个查询的项目,以name=phoneNumber的形式在新行上打印电话簿中的相关条目;如果未找到的条目,请改为“未找到打印” 注意:您的电话簿应该是字典/Map/HashMap数据结构 输入格式 第一行包含一个整数,表示通讯录中的条目数。 随后的每一行以空格分隔的值的形式在一行上描述一个条目。第一个值是一个朋友的名字,第二个值是一个数字的电话号码 在电话簿条目行之后,有未知数量的查询行。每一行(查询)都包含一个要查找的行,您必须继续阅读这些行,直到没有更多的输入 注:姓名由小写英文字母组成,仅为名字 这是我的密码。但我无法检查数组中是否存在名称。你没用吗Javascript 如果未找到打印,请检查数组中是否存在元素,javascript,arrays,element,Javascript,Arrays,Element,我是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;iname
是数组上的拼接
的结果,这意味着它是一个数组,但您已经用字符串填充了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