我正在尝试做一些非常简单的事情,但我认为我犯了一个愚蠢的错误。
我有一个充满对象的数组,我有一个我想要放入该数组的新对象。我的代码如下所示:
var data = [ { id: 'S1', url: '1.html' } ];
var newData = { id: '3', url: '3.html' };
console.log(data.push(newData))
出于某种原因,这会保持打印“2”。
Here是一个小提琴
谁能告诉我我犯的是什么愚蠢的错误?
答案 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
改变调用它的数组并返回数组的新长度。