【问题标题】:flatting and sorting nested arrays In javascript nodejs在javascript nodejs中展平和排序嵌套数组
【发布时间】:2021-10-20 03:09:42
【问题描述】:

如果某些代码与它们在同一个数组中输出的匹配,我有一个输出多个数组的数组,我如何将它们分开,例如这是我的数组

[
[ [ '0011', 6, 96, '2021-08-16' ], [ '0011', 2, 4, '2021-08-17' ] ],
  [ [ '0032', 20, 26, '2021-08-16' ] ],
  [ [ '0098', 6, 246, '2021-08-16' ], [ '0098', 0, 0, '2021-08-17' ] ],
  [ [ '0093', 2, 30, '2021-08-16' ] ],
  [ [ '0051', 32, 229, '2021-08-16' ] ],
  [ [ '0053', 27, 63, '2021-08-16' ], [ '0053', 2, 38, '2021-08-17' ] ],
  [ [ '0022', 4, 2, '2021-08-16' ], [ '0022', 6, 12, '2021-08-17' ] ],
  [ [ '0067', 2, 144, '2021-08-16' ] ],
  [ [ '0166', 4, 102, '2021-08-16' ] ],
  [ [ '0015', 4, 96, '2021-08-16' ] ],
]

如何在数组中获取具有两个或多个值的值并将其放入,以便每个在数组中都有单独的值(如果有意义) 所以理想情况下我会喜欢这个

[
[ [ '0011', 6, 96, '2021-08-16' ]], 
[[ '0011', 2, 4, '2021-08-17' ] ],
  [ [ '0032', 20, 26, '2021-08-16' ] ],
  [ [ '0098', 6, 246, '2021-08-16' ],
[ [ '0098', 0, 0, '2021-08-17' ] ],
  [ [ '0093', 2, 30, '2021-08-16' ] ],
  [ [ '0051', 32, 229, '2021-08-16' ] ],
  [ [ '0053', 27, 63, '2021-08-16' ]],
  [ [ '0053', 2, 38, '2021-08-17' ] ],
  [ [ '0022', 4, 2, '2021-08-16' ]], 
  [ [ '0022', 6, 12, '2021-08-17' ] ],
  [ [ '0067', 2, 144, '2021-08-16' ] ],
  [ [ '0166', 4, 102, '2021-08-16' ] ],
  [ [ '0015', 4, 96, '2021-08-16' ] ],
]

甚至更好

[
[  '0011', 6, 96, '2021-08-16' ], 
[ '0011', 2, 4, '2021-08-17' ],
  [  '0032', 20, 26, '2021-08-16'  ],
  [  '0098', 6, 246, '2021-08-16' ],
[  '0098', 0, 0, '2021-08-17' ],
  [  '0093', 2, 30, '2021-08-16'  ],
  [ '0051', 32, 229, '2021-08-16'  ],
  [ '0053', 27, 63, '2021-08-16' ],
  [ '0053', 2, 38, '2021-08-17' ],
  [ '0022', 4, 2, '2021-08-16' ], 
  [  '0022', 6, 12, '2021-08-17'  ],
  [  '0067', 2, 144, '2021-08-16' ],
  [ '0166', 4, 102, '2021-08-16'  ],
  [ '0015', 4, 96, '2021-08-16'  ],
]

我尝试使用 flatten,但将同一数组中的数组添加在一起,这不是我想要的结果

【问题讨论】:

  • 欢迎来到 Stack Overflow!请使用tour(您将获得徽章!)并通读help center,尤其是How do I ask a good question? 您最好的选择是进行研究,search 以获取有关 SO 的相关主题,然后试一试. 如果您在进行更多研究和搜索后遇到困难并且无法摆脱困境,请发布您的尝试minimal reproducible example,并具体说明您遇到的问题。人们会很乐意提供帮助。
  • “我尝试使用 flatten,但将同一数组中的数组加在一起,这不是我想要的结果” 假设您的意思是 Array.prototype.flatflatten Underscore/Lodash几乎等价,这就是它们的明确目的,所以如果你不想要一个平面阵列,这是一件奇怪的事情。
  • 如果您使用的是lodash,那么使用_.flattenDepth(array, 1); 会得到想要的结果。
  • 问题是@TJCrowder,当我使用 flat 展平数组时,它会将数组放在第一个元素中,例如,当我想要做的是让每个数组成为一个单独的元素时

标签: javascript node.js arrays sorting


【解决方案1】:

试试这个:

let myarray = [
 [ [ '0011', 6, 96, '2021-08-16' ], [ '0011', 2, 4, '2021-08-17' ] ],
 [ [ '0032', 20, 26, '2021-08-16' ] ],
 [ [ '0098', 6, 246, '2021-08-16' ], [ '0098', 0, 0, '2021-08-17' ] ],
 [ [ '0093', 2, 30, '2021-08-16' ] ],
 [ [ '0051', 32, 229, '2021-08-16' ] ],
 [ [ '0053', 27, 63, '2021-08-16' ], [ '0053', 2, 38, '2021-08-17' ] ],
 [ [ '0022', 4, 2, '2021-08-16' ], [ '0022', 6, 12, '2021-08-17' ] ],
 [ [ '0067', 2, 144, '2021-08-16' ] ],
 [ [ '0166', 4, 102, '2021-08-16' ] ],
 [ [ '0015', 4, 96, '2021-08-16' ] ],
 ];




  let cleanArry = [];

  myarray.forEach(item=>{
  item.forEach(nItem=>{
    cleanArry.push(nItem)
  })
  })
  
  //this is the array that you want 
  console.log(cleanArry);

【讨论】:

    【解决方案2】:

    我不明白你为什么不用flat()

    它与接受的答案相同。

    我发布这个答案以防你错过它。

    const array = [
      [
        ["0011", 6, 96, "2021-08-16"],
        ["0011", 2, 4, "2021-08-17"],
      ],
      [["0032", 20, 26, "2021-08-16"]],
      [
        ["0098", 6, 246, "2021-08-16"],
        ["0098", 0, 0, "2021-08-17"],
      ],
      [["0093", 2, 30, "2021-08-16"]],
      [["0051", 32, 229, "2021-08-16"]],
      [
        ["0053", 27, 63, "2021-08-16"],
        ["0053", 2, 38, "2021-08-17"],
      ],
      [
        ["0022", 4, 2, "2021-08-16"],
        ["0022", 6, 12, "2021-08-17"],
      ],
      [["0067", 2, 144, "2021-08-16"]],
      [["0166", 4, 102, "2021-08-16"]],
      [["0015", 4, 96, "2021-08-16"]],
    ];
    
    const output = array.flat();
    
    console.log(output);

    与接受的答案相同的输出。

    【讨论】:

    • 好吧,由于某种原因,当我这样做时,当我希望每个数组分开时,同一元素中的数组最终会成为一个数组,但其他解决方案工作得很好,谢谢
    • @Oas,我还是不明白你为什么会有不同的结果。这个答案只是一个提醒。
    猜你喜欢
    • 1970-01-01
    • 2021-06-29
    • 2021-10-26
    • 2021-07-12
    • 2012-10-31
    • 1970-01-01
    • 2021-06-03
    • 2015-08-15
    相关资源
    最近更新 更多