1. ホーム
  2. javascript

[解決済み] Javascriptのオブジェクトpush()関数

2022-03-11 02:57:08

質問

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 は関数ではありません。 配列と同じでないことは理解できるのですが、そうでない場合はどうしたらいいのでしょうか?

どのように解決するのですか?

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;