我有一个类似数据{"alphaNumeric":[]}
的Json数组。
在这里,我只想将另一个对象数组[mentioned below]
推送到带有out loop概念的 Data 。
data{"numeric":[{"id":"1","alpha":"a"},{"id":"2","alpha":"b"}]}.
我使用了以下代码:
data.alphaNumeric.push(data.numeric);
但输出是:
data{"alphaNumeric":[[{"id":"1","alpha":"a"},{"id":"2","alpha":"b"}]]}.
预期:
data{"alphaNumeric":[{"id":"1","alpha":"a"},{"id":"2","alpha":"b"}]}.
帮我解决。
答案 0 :(得分:3)
一种解决方案可能是使用concat
方法。这不是很好,因为它创建了一个全新的阵列。
b.alphaNumeric = b.alphaNumeric.concat(a.numeric);
但是使用push
有一个更好的解决方案。它接受的不仅仅是一个元素,但遗憾的是它不是一个数组。然而,这可以使用其apply
方法来实现:
b.alphaNumeric.push.apply(b.alphaNumeric, a.numeric);
此外,您可以编写自己的方法(我称之为add
),它将为您执行此操作:
Array.prototype.add = function (array) {
this.push.apply(this, array);
return this;
};
b.alphaNumeric.add(a.numeric);
答案 1 :(得分:2)
使用 concat()
data.alphaNumeric.concat(data.numeric);
答案 2 :(得分:0)
.push()
和.pop()
用于添加和删除数组中的单个元素。来自.concat()的返回值是您正在寻找的:
var newArr = oldArr.concat(extraArr);