Javascript オブジェクト push() 関数 質問する

Javascript オブジェクト push() 関数 質問する

私は JavaScript オブジェクトを持っています (実際には Ajax リクエストを通じてデータを取得します):

var data = {};

いくつか追加しました:

data[0] = { "ID": "1"; "Status": "Valid" }
data[1] = { "ID": "2"; "Status": "Invalid" }

ここで、無効なステータスを持つすべてのオブジェクトを削除します (ただし、順序はすべて同じままにします)。

var tempData = {};
for ( var index in data ) {
    if ( data[index].Status == "Valid" ) {
        tempData.push( data );
    }
}
data = tempData;

これらすべてが機能するはずだと思うのですが、tempData.push関数ではないというエラーが表示されます。配列と同じではない理由は理解していますが、他に何ができるでしょうか?

ベストアンサー1

push()配列用、 ないオブジェクトしたがって、適切なデータ構造を使用してください。

var data = [];
// ...
data[0] = { "ID": "1", "Status": "Valid" };
data[1] = { "ID": "2", "Status": "Invalid" };
// ...
var tempData = [];
for ( var index=0; index<data.length; index++ ) {
    if ( data[index].Status == "Valid" ) {
        tempData.push( data );
    }
}
data = tempData;

おすすめ記事