Javascript 如何使用提示输入在对象数组中循环并显示属性
首先,请提前感谢您对我遇到的这个问题做出的任何回应。 我是JS新手,觉得这段代码应该非常直截了当,但它并没有按预期工作 我想按名称搜索数组中的这些对象,如果在数组中找到了名称(通过提示符获得),我想显示该对象的id 如果我在提示符中输入'Jef',我会得到ID;但如果我输入“Steve”或“Ryan”,我什么也得不到。我还注意到,无论我键入什么,循环似乎都会结束,而不会添加中断。我认为循环正在中断,但我不知道是什么原因导致它在满足“如果”条件之前中断。请帮忙Javascript 如何使用提示输入在对象数组中循环并显示属性,javascript,arrays,loops,jsobject,Javascript,Arrays,Loops,Jsobject,首先,请提前感谢您对我遇到的这个问题做出的任何回应。 我是JS新手,觉得这段代码应该非常直截了当,但它并没有按预期工作 我想按名称搜索数组中的这些对象,如果在数组中找到了名称(通过提示符获得),我想显示该对象的id 如果我在提示符中输入'Jef',我会得到ID;但如果我输入“Steve”或“Ryan”,我什么也得不到。我还注意到,无论我键入什么,循环似乎都会结束,而不会添加中断。我认为循环正在中断,但我不知道是什么原因导致它在满足“如果”条件之前中断。请帮忙 var数组=[{ 姓名:'Jef'
var数组=[{
姓名:'Jef',
年龄:29,,
id:'000'
}, {
姓名:'史蒂夫',
年龄:28,
id:'001'
},
{
姓名:“Ryan”,
年龄:28,
id:'002'
}
];
var i;
对于(i=0;i }
试试这个。您需要对数组进行排序并执行强匹配,然后返回ID
function NameExists(strName,objectArray)
{
//convert to lower for type sensitive
strName = strName.toLowerCase();
for(var i = 0; i <objectArray.length; i++)
{
//convert to lower for type sensitive
var comparison = objectArray[i].Name.toLowerCase();
if(comparison.match(strName)==comparison)
return objectArray[i].id;
}
}
函数名存在(strName,objectArray)
{
//转换为较低的类型敏感
strName=strName.toLowerCase();
对于(var i=0;i而言,您执行此操作的方式非常接近。您只需将提示符()置于循环之外。一旦有了要搜索的输入,您就可以循环整个对象数组
例如:
var nameInput = prompt();
for (i =0; i < array.length; i++){
if (nameInput == array[i].name) {
console.log(array[i].id)
}
}
var nameInput=prompt();
对于(i=0;i
小解释
由于提示所处的循环也会循环对象数组,因此在给定的提示点上只能有1个“正确”答案-无论循环当前处于哪个索引(array[i].name
)上
要了解更多我的意思,请在第一次出现提示时运行当前代码并键入jef
,第二次键入Steve
,第三次键入Ryan
,这样可以获得您的ID,但可能不是您预期的结果。当您按定义的顺序键入名称时,我会得到所有预期的响应。是否有您希望在循环中显示提示的原因?对于我来说,循环并不像您描述的那样结束。也许您选中了提示窗口中的阻止此页面创建其他对话框
复选框?感谢您的帮助。非常感谢!