0

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

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始终是空的。有什么我想念的吗?

4

2 回答 2

3

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

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

Array.prototype.push.apply(oldArray, newArray);
于 2012-09-10T16:10:17.893 回答
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()方法将采用单个元素添加到数组或数组中。如果您传递数组,它将遍历数组并为您获取所有元素。有关数组的更多信息,请参阅MDN 文档。.concat()

于 2012-09-10T16:18:43.863 回答