Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用提示输入在对象数组中循环并显示属性_Javascript_Arrays_Loops_Jsobject - Fatal编程技术网

Javascript 如何使用提示输入在对象数组中循环并显示属性

Javascript 如何使用提示输入在对象数组中循环并显示属性,javascript,arrays,loops,jsobject,Javascript,Arrays,Loops,Jsobject,首先,请提前感谢您对我遇到的这个问题做出的任何回应。 我是JS新手,觉得这段代码应该非常直截了当,但它并没有按预期工作 我想按名称搜索数组中的这些对象,如果在数组中找到了名称(通过提示符获得),我想显示该对象的id 如果我在提示符中输入'Jef',我会得到ID;但如果我输入“Steve”或“Ryan”,我什么也得不到。我还注意到,无论我键入什么,循环似乎都会结束,而不会添加中断。我认为循环正在中断,但我不知道是什么原因导致它在满足“如果”条件之前中断。请帮忙 var数组=[{ 姓名:'Jef'

首先,请提前感谢您对我遇到的这个问题做出的任何回应。 我是JS新手,觉得这段代码应该非常直截了当,但它并没有按预期工作

我想按名称搜索数组中的这些对象,如果在数组中找到了名称(通过提示符获得),我想显示该对象的id

如果我在提示符中输入'Jef',我会得到ID;但如果我输入“Steve”或“Ryan”,我什么也得不到。我还注意到,无论我键入什么,循环似乎都会结束,而不会添加中断。我认为循环正在中断,但我不知道是什么原因导致它在满足“如果”条件之前中断。请帮忙

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,但可能不是您预期的结果。

当您按定义的顺序键入名称时,我会得到所有预期的响应。是否有您希望在循环中显示提示的原因?对于我来说,循环并不像您描述的那样结束。也许您选中了提示窗口中的
阻止此页面创建其他对话框
复选框?感谢您的帮助。非常感谢!