有什么方法可以使这种平面阵列更紧凑?

时间:2019-09-12 07:52:31

标签: javascript

我敢肯定有一些方法可以使它更短:

someObj.array1
  .map((item) => item.array2)
  .flat()
  .map((item) => item.array3)
  .flat()
  .map((item) => item.array4)
  .flat();

1 个答案:

答案 0 :(得分:0)

您可以通过递归方法来移交初始数组和所需键。

function flat(array, [key, ...rest]) {
    return key
        ? flat(array.map(item => item[key]).flat(), rest)
        : array;
}

console.log(flat(someObj.array1, ['array2', 'array3', 'array4']));