从嵌套函数返回值

时间:2020-04-11 10:55:46

标签: javascript arrays

请考虑以下示例:

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);

2 个答案:

答案 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);
相关问题