【问题标题】:How to merge two linear arrays into a two-dimensional array in JavaScript? [duplicate]如何在 JavaScript 中将两个线性数组合并成一个二维数组? [复制]
【发布时间】:2017-02-17 02:20:39
【问题描述】:

例如:

var array1 = ["one", "two", "three"];
var array2 = ["1", "2", "3"];

如何将这些数组转为var array = [["one", "1"], ["two", "2"], ["three", "3"]]

【问题讨论】:

  • 这通常被称为“压缩”。
  • 使用for 循环来完成这个简单的任务
  • 所以,这个问题对你的问题有很好的答案:stackoverflow.com/q/4856717/2544762

标签: javascript arrays


【解决方案1】:
var array1 = ["one","two","three"],
    array2 = ["1","2","3"],
    newarray = array1.map(function(c, i) { return [ c, array2[i] ] });

alert(JSON.stringify(newarray));

这假设两个数组的长度总是相等的。

https://jsfiddle.net/ddtybvo6/

【讨论】:

  • 是的,两个数组的长度总是相等的。
  • 这个解决方案不容易扩展到两个以上的输入。
【解决方案2】:

您可以将underscorezip 函数一起使用:

var array1 = ["one", "two", "three"];
var array2 = ["1", "2", "3"];

_.zip(array1, array2);
// [["one", "1"], ["two", "2"], ["three", "3"]]

压缩

将每个数组的值合并在一起 与相应位置的值。有的时候有用 通过匹配数组协调的独立数据源 索引。与 apply 一起使用以传入数组数组。如果你是 使用嵌套数组的矩阵,这可用于转置 矩阵。

_.zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]);
=> [["moe", 30, true], ["larry", 40, false], ["curly", 50, false]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 2017-05-18
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    • 2017-10-12
    • 2021-10-29
    相关资源
    最近更新 更多