javascript concat

时间:2012-09-10 16:08:20

标签: javascript

我有几个数组需要连接成一个新数组。我这样做:

function ConcatArrays() {

     var TheNewArray = [];

     function TheConcat(TheArray) { TheNewArray = TheNewArray.concat(TheArray); }

     for (var i = 0; i < SomeArrayOfObjects.length; i++) {

         if (SomeCondition) { TheConcat(SomeArrayOfObjects[i]); }
     }
}

出于某种原因,TheNewArray始终为空。有什么我想念的吗?

2 个答案:

答案 0 :(得分:3)

您正在为本地参数指定一个新数组 这不会影响您作为参数传递的变量。

您可以将数组添加到现有数组实例(而不是创建新数组),如下所示:

Array.prototype.push.apply(oldArray, newArray);

答案 1 :(得分:3)

您可以使用现有数组的.concat()方法直接连接数组。我不确切地知道你要编写什么方法,但是如果你有三个数组,你可以像这样组合它们:

var a = [1,2,3];
var b = [4,5,6];
var c = [7,8,9];

var d = a.concat(b,c);   // creates [1,2,3,4,5,6,7,8,9]

工作示例:http://jsfiddle.net/jfriend00/N4ews/

array.concat()方法将单个元素添加到数组或数组中。如果传递数组,它将循环遍历数组并为您获取所有元素。有关.concat()数组的详细信息,请参阅MDN doc