1

迭代拼接多个数组的最快方法是什么——不会对性能造成太大影响?我想它类似于下面的语法,但它并不完全有效。

我想做: Array1 - remove[0], Array2 - remove[1], Array3 - remove[2]...等等...

for (var i = 0; i < items.length; i++) {
    arr[i] = items.name;
    for(key in arr[i]) {
        var value = arr[i].splice(i, 1);
        console.log(value);
    }
}

在此处输入图像描述

编辑(项目的定义):

在此处输入图像描述

期望的结果(分别删除了第 1、第 2、第 3 项的 3 个数组:

[array0]
  [0] United Kingdom
  [1] United States

[array1]
  [0] Canada 
  [1] United States

[array2]
  [0] Canada
  [1] United Kingdom

EDIT2 - 如果您查看以下比较,您可以看到我们是否使用 for 循环将传入的数组推送到组中,结果与 Corey 提供的解决方案相同,但如果我们在这两个上运行拼接方法 -结果非常不同,示例 2 正确拼接 - 示例 1 完全拼接,这就是我感到困惑的地方:

(项目以以下形式出现:)

["Canada", "United Kingdom", "United States"] 
["Canada", "United Kingdom", "United States"] 
["Canada", "United Kingdom", "United States"] 


var group = [];

for (var i = 0; i < items.length; i++) {
    group.push(items.name);
}

/*for (var i = 0; i < group.length; i++) {
   group[i].splice(i, 1);
}*/

console.log(group);

var arr1 = ["One", "Two", "Three"];
var arr2 = ["One", "Two", "Three"];
var arr3 = ["One", "Two", "Three"];

var test = [arr1, arr2, arr3];

/*for (var i = 0; i < test.length; i++) {
   test[i].splice(i, 1);
}*/

console.log(test);      
4

2 回答 2

1

如果您的所有数组都在另一个“分组”数组中,您可以遍历该组并将索引用作拼接计数器。就像是:

var arr1 = ["One", "Two", "Three"];
var arr2 = ["One", "Two", "Three"];
var arr3 = ["One", "Two", "Three"];

var group = [arr1, arr2, arr3];

for (var i = 0; i<group.length; i++) {
   group[i].splice(i,1);
}

console.log(group);
// Logs: ["Two", "Three"], ["One", "Three"], ["One", "Two"]
于 2013-03-06T20:32:16.577 回答
0

如果您不介意使用第三方库,最简单的方法是使用 Underscore.js。我不清楚您是否要选择性地拼接,或者您是否只是想创建一个数组,它是其他数组的联合,或者具有唯一值,或者什么。但他们对所有这些事情都有操作:

http://underscorejs.org/#union

如果您不想将它们带入,那么只需查看 hte 源代码,看看他们是如何做到的。

于 2013-03-06T20:29:58.443 回答