如何通过javascript将数据数组推送到另一个数组而没有循环

时间:2014-07-27 09:02:50

标签: javascript

我有一个类似数据{"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"}]}.

帮我解决。

3 个答案:

答案 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);