Javascript 循环对象数组
我必须从这个对象数组中返回Greg和Joe 我正在数组中循环,如果主人是Emily,我想提醒()Greg和Joe,review.nameJavascript 循环对象数组,javascript,Javascript,我必须从这个对象数组中返回Greg和Joe 我正在数组中循环,如果主人是Emily,我想提醒()Greg和Joe,review.name let list=[ { 大师:“狮子座”, 审查:[{ 姓名:'鲍勃', 星星:2 }, { 名字:'珐茵岚', 星星:4 }, ] }, { 大师:“艾米丽”, 审查:[{ 姓名:“格雷格”, 星星:3颗 }, { 名字:'乔', 星星:2 }, ] }, ] for(设i=0;i
let list=[
{
大师:“狮子座”,
审查:[{
姓名:'鲍勃',
星星:2
},
{
名字:'珐茵岚',
星星:4
},
]
},
{
大师:“艾米丽”,
审查:[{
姓名:“格雷格”,
星星:3颗
},
{
名字:'乔',
星星:2
},
]
},
]
for(设i=0;i }
这是因为review
是一个对象数组&您需要传递索引。在本演示中,传递0
以获取第一个对象。再次循环查看并从每个对象获取名称
let list=[
{
大师:“狮子座”,
审查:[{
姓名:'鲍勃',
星星:2
},
{
名字:'珐茵岚',
星星:4
},
]
},
{
大师:“艾米丽”,
审查:[{
姓名:“格雷格”,
星星:3颗
},
{
名字:'乔',
星星:2
},
]
},
]
for(设i=0;i }
review
是一个对象数组。我们可以这样写一行,但我会解释我们在做什么:
alert(
list.find(e => e.master === "Emily").review
.map(e => e.name).join(', ')
)
list
是一个数组,它具有一个find
。在find
方法中,我们传递一个返回true
或false
的函数。我们可以决定要找什么。在本例中,我们试图找到master
属性为“Emily”的条目。找到我们要查找的内容后,我们可以使用map
循环浏览条目的review
属性,并返回一个名称数组,最后使用join
将其粘在一起
另一种方法是使用2个循环:
for (let i = 0; i < list.length; i++) {
if (list[i].master === 'Emily') {
let names = [];
for (let j = 0; j < list[i].review.length; j++) {
names.push(list[i].review[j].name);
}
alert(names.join(', '));
}
}
for(设i=0;i
请记住,如果找不到master
属性设置为“Emily”的条目,第一种方法将抛出错误。您可以执行以下操作:
const list=[{master:'Leo',review:[{name:'Bob',stars:2},{name:'Elly',stars:4},]},{master:'Emily',review:[{name:'Greg',stars:3},{name:'Joe',stars:2}]
list.forEach((o,i)=>{
如果(o.master==='Emily'){
list[i].review.forEach(u=>console.log(u.name));
}
});代码>您的语法不正确。字符串需要用分隔符括起来。您需要两个循环。使用警报肯定不是您真正的目标。解释更高级别的目标是什么。花几分钟时间通读你想要的结果是什么。。?名称数组?