我有下面的函数,但它没有返回预期的结果.我如何才能更改它,使其返回所需的输出?

function convertArr () {

const separateNestedArrays = function (arr) {
  return arr.flatMap((element) => {
    if (Array.isArray(element)) {
      return element;
    } else {
      return [element];
    }
  });
};

const twoDimensionalArray = [
  [1, 2, 3, 4],
  [[5, 6], [9, 10]],
  [5, 6, 7]
];

const modifiedArray = separateNestedArrays(twoDimensionalArray);

console.log(modifiedArray);

// Desired Output: [[1, 2, 3, 4], [5, 6], [9, 10], [5, 6, 7]]
// Current Output: [ 1, 2, 3, 4, [ 5, 6 ], [ 9, 10 ], 5, 6, 7 ]

};

推荐答案

您可以使用递归函数,但在您的示例中,如果twoDimensionalArray不超过2维,则此代码可以工作:

const separateNestedArrays = function (arr) {
  let result=[]
  arr.map((element) => {
    if (Array.isArray(element[0])) {
        element.flatMap((subArray) => {
            result.push(subArray)
        })
    } else {
        result.push(element)
    }
  });
  return result
};

const twoDimensionalArray = [
  [1, 2, 3, 4],
  [[5, 6], [9, 10]],
  [5, 6, 7]
];


console.log(separateNestedArrays(twoDimensionalArray));

Javascript相关问答推荐

详细更改参考价值:"

如何使用3个部件之间的路由?

事件错误:类型错误:无法读取未定义的属性(读取stopPropagation)

容器如何更改默认插槽中子项的显示?

如何在JavaScript中在文本内容中添加新行

GrapeJS -如何保存和加载自定义页面

如何解决CORS政策的问题

如何在Connect 4游戏中 for each 玩家使用位板寻找7形状?

如何在Javascript中的控制台上以一行形式打印循环的结果

为什么我的列表直到下一次提交才更新值/onChange

为什么按钮会随浮动属性一起移动?

如果Arrow函数返回函数,而不是为useEffect返回NULL,则会出现错误

如何在ASP.NET JavaScript中使用Google Charts API仅对绘制为负方向的条形图移动堆叠条形图标签位置

如何通过将实例方法的名称传递给具有正确类型的参数的继承方法来调用实例方法?

更新动态数据中对象或数组中的所有值字符串

如何在Angular拖放组件中同步数组?

使用Nuxt Apollo在Piniastore 中获取产品细节

如何用javascript更改元素的宽度和高度?

我正在试着做一个TicTacToe Ai来和我玩.但是,我试着在第一个方块被点击时出现一个X,然后在第二个方块之后出现一个O

使用可配置项目创建网格