如何解决如何遍历多个数组然后聚合它们
我有一个对象说人。假设我有 Person.pets.breeds.ages。宠物、品种和年龄都是对象数组。如果我想汇总所有年龄段的人,那么在不进行一堆 for 循环的情况下,最有效和最干净的方法是什么?我真的不想写这样的函数:
var result = []
for (var j in pets) {
var pet = pets[j]
for (var k in breeds) {
var breed = breeds[k]
for (var l in ages) {
result.push(ages[l])
}
}
}
return result
解决方法
不用一堆for循环来解决它的一种方法是利用flatMap:
const person = {
pets: [{
breeds: [{
ages: [{
age: 1
}]
},{
ages: [{
age: 2
}]
}]
},{
breeds: [{
ages: [{
age: 3
}]
},{
ages: [{
age: 4
}]
}]
}]
};
const result = person.pets.flatMap(pet => pet.breeds.flatMap(b => b.ages));
console.log(result);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。