在javascript中嵌套循环
Nesting loops in javascript
本文关键字:嵌套循环 javascript 更新时间:2024-06-05
我认为下面的代码是正确的:
函数应该检查firstName是否是实际联系人的firstName,并且给定的属性(prop)是否是该联系人的属性。
如果两者都为真,则返回该属性的"值"。
对参数为"Kristian"answers"lastName"的函数lookUpProfile的调用应该返回值"Vos",但事实并非如此。
有些想法哪里错了?
var contacts = [
{
"firstName": "Akira",
"lastName": "Laine",
"number": "0543236543",
"likes": ["Pizza", "Coding", "Brownie Points"]
},
{
"firstName": "Harry",
"lastName": "Potter",
"number": "0994372684",
"likes": ["Hogwarts", "Magic", "Hagrid"]
},
{
"firstName": "Sherlock",
"lastName": "Holmes",
"number": "0487345643",
"likes": ["Intriguing Cases", "Violin"]
},
{
"firstName": "Kristian",
"lastName": "Vos",
"number": "unknown",
"likes": ["Javascript", "Gaming", "Foxes"]
}
];
function lookUpProfile(firstName, prop){
for(var i=0;i<contacts.length;i++){
for(var j=0;j<contacts[i].length;j++){
if(contacts[i][0]===firstName && contacts[i][j].hasOwnProperty(prop)){
return contacts[i][j];
}
}
}
}
// Change these values to test your function
lookUpProfile("Kristian", "lastName");
代码的问题是,第二个for循环正在检查根本不存在的属性contacts[i].length
。对象没有.length
属性,只有Arrays。
你不需要第二个for循环来循环所有属性,你只需要检查firstName,然后检查你想要的属性是否在那里,然后返回它。
for(var i=0;i<contacts.length;i++){
if(contacts[i]['firstName']===firstName && contacts[i].hasOwnProperty(prop)){
return contacts[i][prop];
}
}
应该是你想要的。
如果你想循环所有的对象属性,你应该使用这样的for in
循环:
for(var key in contacts[i]){
//place your check here using contacts[i][key] the get the value for the key
}
编辑:添加for in
示例
您只需在查找函数中使用两行代码即可解决问题:
function lookUpProfile(firstName, prop) {
var contact = contacts.find((c) => c.firstName === firstName);
return contact.hasOwnProperty(prop) ? contact[prop] : null;
}
试试我的JSFiddle。
相关文章:
- 为循环嵌套的Javascript未按预期返回数组
- JavaScript:在嵌套循环中为数组赋值
- Javascript嵌套循环匹配、组合、替换
- 在javascript中嵌套循环
- JavaScript中的嵌入循环和嵌套循环之间有区别吗
- 嵌套循环中数组2d中的javascript变量丢失
- 嵌套循环javascript棋盘
- 如何使用嵌套循环使用 Javascript 打印到外部循环的输出中
- 如何在 Javascript 中创建一个模拟 100 行和 10 列网格的嵌套循环
- 嵌套循环中 Javascript 变量的作用域
- 从嵌套循环 Javascript 中的一个循环访问参数
- Facebook Javascript 函数嵌套循环
- 嵌套在 JavaScript KNOCKOUT 中的循环
- JavaScript-如何使用递归创建变量嵌套循环
- Javascript:嵌套循环以在VMware vCenter中创建目录树
- Javascript嵌套循环的额外输出
- 在嵌套循环Javascript中播放功能
- 嵌套循环JavaScript
- 嵌套循环Javascript
- 嵌套循环-Javascript