gpt4 book ai didi

javascript - for循环加上for in循环

转载 作者:行者123 更新时间:2023-12-02 16:01:49 26 4
gpt4 key购买 nike

为什么这段代码不起作用?我试图循环遍历对象集合并检测属性值是否与源匹配。如果属性值匹配,我想将它们插入数组中。当我在 for in 循环中 console.log 时,我变得未定义,并且所有内容似乎都被插入数组中。这是代码:

function where(collection, source) {
var arr = [];
// What's in a name?
for(var i =0; i < collection.length; i++){
for(var key in collection){
if (collection[i][key] === source[key]) {
arr.push(collection[i]);
}
}
}
}

return arr;
}

where([{ first: 'Romeo', last: 'Montague' }, { first: 'Mercutio', last: null }, { first: 'Tybalt', last: 'Capulet' }], { last: 'Capulet' });

我的想法是这应该可行,但我不确定代码出了什么问题。我该如何修复代码?

当我只是尝试测试是否可以记录这些值时,我变得未定义,不知道为什么:

function where(collection, source) {
var arr = [];
// What's in a name?
for(var i =0; i < collection.length; i++){

for(var key in collection){
console.log("collection[i][key]:",collection[i][key]);
console.log("source[key]:", source[key]);



}

}

return arr;
}

最佳答案

您只需将 [i] 添加到第二个 for 循环(

for(集合中的var key [i])

function where(collection, source) {
var arr = [];
// What's in a name?
for(var i =0; i < collection.length; i++){

for(var key in collection[i]){
if(collection[i][key] === source[key])
{
arr.push(collection[i]);
}
}

}

return

关于javascript - for循环加上for in循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31133118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com