1

私は本当に単純なことをしようとしていますが、愚かな間違いを犯していると思います.

オブジェクトでいっぱいの配列があり、その配列に入れたい新しいオブジェクトがあります。私のコードは次のようになります。

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

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

console.log(data.push(newData))

何らかの理由で、これは「2」を出力し続けます。

ここにフィドルがあります

私が犯している愚かな間違いを誰か教えてもらえますか?

4

2 に答える 2

4

あなたは.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)それぞれObjecttoString()が使用され、単純に次のようになります。

[object Object],[object Object]
于 2013-08-20T23:22:56.570 に答える
1

Array.protoype.push呼び出された配列を変更し、配列の新しい長さを返します。

ここでドキュメントをチェックしてください!

于 2013-08-20T23:23:27.540 に答える