如何理解节点js的以下函数输出

我有下面的函数,该函数采用具有行(第一行为标题)和列(如.NET中的数据集)作为输入并返回输出的结果集。它返回什么输出我无法理解。我在运行Node js应用程序时遇到一些问题,因此无法逐行调试它。我真的需要了解它的目的。

export const flattenObject = (object) => {
  return object.reduce((acc, val) => Array.isArray(val) ?
    acc.concat(flattenObject(val)) : acc.concat(val), []);
};

有人可以帮我获得其输出/在代码中的目的。 提前致谢。

评论
  • caut
    caut 回复

    箭头函数将在数组中的每个项目上执行,acc将是前一次执行返回的项目,而val将是项目本身。在第一次执行中,acc将是第二个参数,在这种情况下,它是一个空数组。

    因此,它的工作是检查数组中的当前项目是否为数组,如果是,则递归运行该函数,如果不是,则将该项目添加到数组中。

    This flattens the array. If object is [[1,[2,3]],4] it will return [1,2,3,4].

    Better way to do it is using object.flat(Infinity).