我有几个数组需要连接成一个新数组。我这样做:
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
始终为空。有什么我想念的吗?
答案 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。