我正在尝试做一些非常简单的事情,但我认为我犯了一个愚蠢的错误。
我有一个充满对象的数组,并且我有一个要放入该数组的新对象。我的代码如下所示:
var data = [ { id: 'S1', url: '1.html' } ];
var newData = { id: '3', url: '3.html' };
console.log(data.push(newData))
出于某种原因,这会一直打印“2”。
这是一个小提琴
谁能告诉我我犯了什么愚蠢的错误?
我正在尝试做一些非常简单的事情,但我认为我犯了一个愚蠢的错误。
我有一个充满对象的数组,并且我有一个要放入该数组的新对象。我的代码如下所示:
var data = [ { id: 'S1', url: '1.html' } ];
var newData = { id: '3', url: '3.html' };
console.log(data.push(newData))
出于某种原因,这会一直打印“2”。
这是一个小提琴
谁能告诉我我犯了什么愚蠢的错误?
你使用.push()
正确。但是,显然期待不同的return
价值:
退货
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)
将使用 each Object
'stoString()
,这将简单地导致:
[object Object],[object Object]
Array.protoype.push
改变它被调用的数组并返回数组的新长度。