当前位置: 首页 > 面试题库 >

JavaScript 合并/展平数组

严宏朗
2023-03-14
问题内容

我有一个像这样的JavaScript数组:

[["$6"], ["$12"], ["$25"], ["$25"], ["$18"], ["$22"], ["$10"]]

我将如何将单独的内部数组合并为一个类似的数组

["$6", "$12", "$25", ...]

问题答案:

您可以使用concat合并数组:

var arrays = [

  ["$6"],

  ["$12"],

  ["$25"],

  ["$25"],

  ["$18"],

  ["$22"],

  ["$10"]

];

var merged = [].concat.apply([], arrays);



console.log(merged);

使用applyof方法concat将仅将第二个参数作为数组,因此最后一行与此相同:

var merged2 = [].concat(["$6"], ["$12"], ["$25"], ["$25"], ["$18"], ["$22"], ["$10"]);

还有Array.prototype.flat()一种方法(在ES2019中引入)可用于展平阵列,尽管该方法仅在从版本11开始的Node.js中可用,而在Internet Explorer中完全不可用。

const arrays = [

      ["$6"],

      ["$12"],

      ["$25"],

      ["$25"],

      ["$18"],

      ["$22"],

      ["$10"]

    ];

const merge3 = arrays.flat(1); //The depth level specifying how deep a nested array structure should be flattened. Defaults to 1.

console.log(merge3);


 类似资料:
  • 我有一个JavaScript数组,如: 如何将单独的内部数组合并为一个:

  • 我正在练习并试图写一个递归数组扁平化函数。代码在这里: 问题是,如果我将一个数组或嵌套数组传递给它,就会出现“超出最大调用堆栈大小”错误。我做错了什么?

  • 问题内容: 说我有一个 我可以很容易地获得地图的值,并对其进行迭代以生成一个。 有一种方法可以一次压平吗? 问题答案: 如果您使用的是Java 8,则可以执行以下操作:

  • a=[78,187,30] b=[78,186,185,25,30] c=[78,187,186,185,25,30] //想获得的结果 a=[1,2,3,4,5] b=[1,6,7,8,3,9,5] c=[1,2,6,7,8,3,4,9,5] //想获得的结果 a、b数组里面的值都是唯一的,怎么用js获得想要的值呢? 问了ChatGPT都没解决,它给的方法在控制台输出结果不一致,因为chatGP

  • 问题内容: 如我们所知,通过使用方法将数组展平 那么如何将此数组展平到? 问题答案: 这是递归的一种替代方法,并且应接受任何深度级别,以避免堆栈溢出。

  • 问题内容: 您好,我想基于数组中的唯一项合并数组。 我拥有的对象 在这个totalCells数组中,我有几个这样的对象 现在,我想制作一个数组,在该数组中我可以基于lineNumber进行数组组合。 就像我有一个具有lineNumber属性和cellWidth集合的对象。我可以这样做吗? 我可以遍历每一行并检查行号是否相同,然后按该单元格宽度。有什么办法我可以算吗? 我正在尝试获得这样的输出。 问