请考虑以下示例:
const colour = garage.find(car => car.colours.find(colour => colour.primary === value));
如果内部函数的条件都满足,即搜索值匹配,则此代码段返回最上层父对象。
返回最内层孩子的值(即匹配的“节点”)的最优雅方法是什么?
我唯一想到的就是以下内容,我讨厌它:
const car = garage.find(car => car.colours.find(colour => colour.primary === value));
const colour = car.colours.find(colour => colour.primary === value);
答案 0 :(得分:2)
请改用for
循环:
for (const car of garage) {
for (const color of car.colours) {
if (colour.primary === value) {
return colour;
}
}
}
答案 1 :(得分:0)
您可以将阵列展平为多种颜色,然后找到:
const colour = garage
.flatMap(car => car.colours)
.find(colour => colour.primary === value);