gpt4 book ai didi

javascript - 在 for-in 循环中找不到值

转载 作者:行者123 更新时间:2023-11-29 10:02:08 26 4
gpt4 key购买 nike

我正在尝试遍历此数组的对象元素,并在“for in”循环找到值“bill”时返回“gotcha, bill”。然而,它似乎只返回“不是他”四次。我已经浏览了好几次,但不确定自己遗漏了什么。这是我第一次使用 for in 循环,所以我可能会误解它的工作原理。

如有任何帮助,我们将不胜感激!

var names = [{name: 'steven', age: 22}, {name: 'bill', age: 13}];

function findBill(array) {
for(let i = 0; i < array.length; i++) {
for(let key in array[i]) {
if(key === 'bill') {
return console.log('gotcha, bill');
} else {
console.log('not him');
}
}
}
}

findBill(names)

最佳答案

for..in遍历对象的。自 bill是一个值,而不是键,(key === 'bill')测试永远不会评估为 true .

如果您想遍历对象的值,请使用 Object.values , 因为这听起来像是您想找到 bill对象,您可以使用 .find :

var names = [{name: 'steven', age: 22}, {name: 'bill', age: 13}];

function findBill(array) {
return array.find((obj) => (
Object.values(obj).includes('bill')
))
};

console.log(findBill(names))

如果您事先知道该值将在 name 中属性,然后只测试该属性,而不是使用 Object.values :

var names = [{name: 'steven', age: 22}, {name: 'bill', age: 13}];

function findBill(array) {
return array.find((obj) => (
obj.name === 'bill'
))
};

console.log(findBill(names))

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

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