Saya memiliki objek javascript (saya sebenarnya mendapatkan data melalui permintaan ajax):
var data = {};
Saya telah menambahkan beberapa hal ke dalamnya:
data[0] = { "ID": "1"; "Status": "Valid" }
data[1] = { "ID": "2"; "Status": "Invalid" }
Sekarang saya ingin menghapus semua objek dengan status tidak valid (tetapi tetap menjaga urutannya sama):
var tempData = {};
for ( var index in data ) {
if ( data[index].Status == "Valid" ) {
tempData.push( data );
}
}
data = tempData;
Dalam pikiran saya, semua ini harus berfungsi, tetapi saya mendapatkan kesalahan yang tempData.push
bukan merupakan fungsi. Saya mengerti mengapa itu tidak sama dengan array, tapi apa yang bisa saya lakukan sebaliknya?
javascript
json
Andrew Jackman
sumber
sumber
Jawaban:
push()
adalah untuk array , bukan objek , jadi gunakan struktur data yang benar.sumber
for...in
loop juga.Objek tidak mendukung properti push, tetapi Anda juga dapat menyimpannya menggunakan indeks sebagai kunci,
Saya pikir ini lebih mudah jika menghapus objek jika statusnya tidak valid, dengan melakukan.
Dan akhirnya Anda tidak perlu membuat var temp -
sumber
Anda harus membuatnya
var tempData = new Array();
Push adalah fungsi Array.
sumber
new Array()
tidak[]
?[]
adalah cara utama untuk membuat array, yang lainnya adalah alternatif dan bahkan dapat ditimpa.new Array()
itu jahatBahasa pemrograman Javascript mendukung paradigma pemrograman fungsional sehingga Anda dapat melakukannya dengan mudah dengan kode-kode ini.
sumber
Saya berasumsi bahwa BENAR-BENAR Anda mendapatkan objek dari server dan ingin mendapatkan objek pada output
Tampilkan cuplikan kode
sumber
Saya setuju dengan jawaban yang benar di atas, tapi .... Anda masih belum memberikan nilai indeks untuk data yang ingin Anda tambahkan ke tempData. Tanpa nilai [index], seluruh array akan ditambahkan.
sumber
Lakukan:
sumber
new Array()
tidak[]
?