问题.push()

时间:2013-08-20 23:21:32

标签: javascript arrays object

我正在尝试做一些非常简单的事情,但我认为我犯了一个愚蠢的错误。

我有一个充满对象的数组,我有一个我想要放入该数组的新对象。我的代码如下所示:

 var data = [ { id: 'S1', url: '1.html' } ];

 var newData = { id: '3', url: '3.html' };

console.log(data.push(newData))

出于某种原因,这会保持打印“2”。

Here是一个小提琴

谁能告诉我我犯的是什么愚蠢的错误?

2 个答案:

答案 0 :(得分:4)

您正确使用.push()。但是,显然期待a different return value

  

返回

     

调用方法的对象的新length属性。

如果您尝试记录Array本身,则需要单独执行此操作:

data.push(newData);
console.log(data);

至于小提琴,您可以使用JSON.stringify()来序列化对象。

data.push(newData);
$('#here').text(JSON.stringify(data, null, 2))
[ { "id": "S1", "url": "1.html" }, { "id": "3", "url": "3.html" } ]

只需使用.text(data)即可使用每个Object's toString(),这只会导致:

[object Object],[object Object]

答案 1 :(得分:1)

Array.protoype.push改变调用它的数组并返回数组的新长度。

Check out the docs here!