【问题标题】:Javascript array merge [duplicate]Javascript数组合并[重复]
【发布时间】:2016-05-27 14:22:48
【问题描述】:

我想以特定方式合并一些数组。现在的样子:

[key1, key2, key3, key4]
[val1, val2, val3, val4]
[val1, val2, val3, val4]
[val1, val2, val3, val4]
[val1, val2, val3, val4]

我希望它最终看起来如何

[key1, val1, val1, val1, val1]
[key2, val2, val2, val2, val2]
[key3, val3, val3, val3, val3]
[key4, val4, val4, val4, val4]

希望你们有解决方案谢谢!

PS:如果有什么不够清楚的,请发表评论。

【问题讨论】:

  • key1 用于输出中的所有数组?不是key2key3 等?
  • 另外,将您已经尝试过的代码添加到您的问题中。
  • 哎呀,你是对的,应该是key2,key3等
  • 我现在拥有的代码只是返回当前输出。我不能把它变成想要的输出。无法弄清楚如何..
  • 什么是key1、key 2、key3、key3?它们是字符串吗?它们没有定义。

标签: javascript arrays merge


【解决方案1】:

只需更改行和列。基本上是这样的:r[j][i] = x[i][j]

var data = [['key1', 'key2', 'key3', 'key4'], ['val11', 'val21', 'val31', 'val41'], ['val12', 'val22', 'val32', 'val42'], ['val13', 'val23', 'val33', 'val43'], ['val14', 'val24', 'val34', 'val44']],
    pivot = function (data) {
        var r = [];
        data.forEach(function (a, i) {
            a.forEach(function (b, j) {
                r[j] = r[j] || [];
                r[j][i] = b;
            });
        });
        return r;
    }(data);

document.write('<pre>' + JSON.stringify(pivot, 0, 4) + '</pre>');

【讨论】:

  • 这可能是解决方案,但问题是数组是动态的,因此它没有固定的索引。例如键有 30 个值,值数组也有 30 个值,那它还能工作吗?
  • @LeroySteding,为什么不,用你的数据试试。
  • 数据的排序似乎不正确,有些值位于不属于它们的位置,哈哈,我现在正在查看它!
【解决方案2】:

您可以创建一个由这些数组组成的数组并填充您的新数组,如下所示:

var array1 = ["key1", "key2", "key3", "key4"];
var array2 = ["val1", "val2", "val3", "val4"];
var array3 = ["val1", "val2", "val3", "val4"];
var array4 = ["val1", "val2", "val3", "val4"];
var array5 = ["val1", "val2", "val3", "val4"];

allArrays = [array1,array2,array3,array4,array5];
array11 = []
array22 = []
array33 = []
array44 = []
for(var i = 0; i < allArrays.length; i++){
  array11.push(allArrays[i][0]);
  array22.push(allArrays[i][1]);
  array33.push(allArrays[i][2]);
  array44.push(allArrays[i][3]);

}

https://jsfiddle.net/fh1ou9c2/

【讨论】:

    猜你喜欢
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多