为了账号安全,请及时绑定邮箱和手机立即绑定

如何将多维数组转换为二维数组?

如何将多维数组转换为二维数组?

蝴蝶刀刀 2023-08-24 18:03:23
给定多维数组(任意大小和深度):const multidimensionalArray = [1, [2, [3, [4, [5]]]], [6], [7, [8], [9]]];我需要按照下面的示例将其转换为二维数组(其想法是每个嵌套值应转换为所有父项 + 该值的数组)。预期的二维数组:const twoDimensionsArray = [  [1],  [1, 2],  [1, 2, 3],  [1, 2, 3, 4],  [1, 2, 3, 4, 5],  [1, 6],  [1, 7],  [1, 7, 8],  [1, 7, 9],];你能帮我解决这个问题吗?
查看完整描述

1 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

对每个嵌套数组的递归调用应该可以解决问题。

注意:以下内容对于您的用例来说可能并不完整 - 您的数据需要按特定顺序才能工作 - 但我认为作为示例,这应该足够干净:

const customFlatten = (arr, parents = [], output = []) => {

  for (const item of arr) {

    // If not an array...

    if (!Array.isArray(item)) {

      parents.push(item) // update parents for recursive calls

      output.push(parents.slice(0)) // add entry to output (copy of _parents)


    // If an array...

    } else {

      customFlatten(item, parents.slice(0), output) // recursive call

    }

  }

  return output

}


console.log(customFlatten([1, [2, [3, [4, [5]]]], [6], [7, [8], [9]]]))


查看完整回答
反对 回复 2023-08-24
  • 1 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信