只是尝试更熟悉数组中的嵌套对象和 for in 循环。一切都按我预期的那样工作,直到我插入一个 if 语句,然后我才没有在控制台中得到预期的 true 输出结果。
我已经尝试了各种点/括号符号的组合来访问。
const animals = [
{
species: 'Pets',
list: [
'Dog',
'Cat',
'Rabbit',
'Gerbil',
'Turtle',
'Canary'
]
},
{
species: 'Wild',
list: [
'Bear',
'Lion',
'Deer',
'Tiger',
'Cougar',
'Elk',
'Beaver',
'Elephant',
'Rhino'
]
},
{
species: 'Marine',
list: [
'Shark',
'Salmon',
'Squid',
'Octopus',
'Jellyfish'
]
}
];
for(let i = 0; i < animals.length; i++) {
for(let prop in animals[i]) {
console.log(animals[i][prop])
if(animals[i][prop] === 'Shark'){
console.log(true)
}
}
}
如果值等于“Shark”,我想控制台日志为真
最佳答案
你还需要迭代数组
const animals = [{ species: 'Pets', list: ['Dog', 'Cat', 'Rabbit', 'Gerbil', 'Turtle', 'Canary'] }, { species: 'Wild', list: ['Bear', 'Lion', 'Deer', 'Tiger', 'Cougar', 'Elk', 'Beaver', 'Elephant', 'Rhino' ] }, { species: 'Marine', list: ['Shark', 'Salmon', 'Squid', 'Octopus', 'Jellyfish'] }]
for (let i = 0; i < animals.length; i++) {
for (let prop in animals[i]) {
// console.log(animals[i][prop]);
for (var item of animals[i][prop]) {
if (item === 'Shark') {
console.log(true);
}
}
}
}
一种较短的方法是迭代 animals
,然后迭代 list
。
const animals = [{ species: 'Pets', list: ['Dog', 'Cat', 'Rabbit', 'Gerbil', 'Turtle', 'Canary'] }, { species: 'Wild', list: ['Bear', 'Lion', 'Deer', 'Tiger', 'Cougar', 'Elk', 'Beaver', 'Elephant', 'Rhino' ] }, { species: 'Marine', list: ['Shark', 'Salmon', 'Squid', 'Octopus', 'Jellyfish'] }]
animals.forEach(({ list }) => {
if (list.includes('Shark')) {
console.log(true);
}
});
关于javascript - 如何在 for-in 循环中使用 If 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53991132/