私は 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;