Jika saya memiliki objek JS seperti:
var foo = { 'bar' : 'baz' }
Jika saya tahu yang foo
memiliki struktur kunci / nilai dasar itu, tetapi tidak tahu nama kunci itu, apa cara termudah untuk mendapatkannya? for ... in
? $.each()
? Saya harap ada sesuatu yang lebih baik ....
javascript
jquery
Sprugman
sumber
sumber
Jawaban:
Jika Anda ingin mendapatkan semua kunci, ECMAScript 5 diperkenalkan
Object.keys
. Ini hanya didukung oleh browser yang lebih baru tetapi dokumentasi MDC memberikan implementasi alternatif (yang juga menggunakanfor...in
btw):Tentu saja jika Anda menginginkan keduanya, kunci dan nilai, maka itu
for...in
adalah satu-satunya solusi yang masuk akal.sumber
p
memberi saya kunci tetapi bagaimana cara mendapatkan nilai kunci? Terima kasih.Anda akan beralih di dalam objek dengan for for:
Atau
sumber
foo[i]
menjadi seperti itu"_proto_"
?foo[i]
jikai
adasome string
?Anda dapat mengakses setiap tombol satu per satu tanpa iterasi seperti pada:
sumber
const [firstKey, ...rest] = Object.keys(obj);
Diberikan Objek Anda:
Untuk mendapatkan
bar
, gunakan:Untuk mendapatkan
baz
, gunakan:Dengan asumsi satu objek
sumber
Satu liner untuk Anda:
sumber
Ini adalah cara paling sederhana dan mudah. Inilah cara kami melakukan ini.
Sekarang Anda dapat beralih pada objek dan dapat mengakses nilai-nilai seperti di bawah ini-
sumber
TypeError
jika Anda mengharapkan kunci menjadi nomor. Karena kunci selalu berupa string.Saya mengalami masalah yang sama dan inilah yang berhasil
sumber
var value = person[key];
? Dengan begitu Anda tidak perlu tahu kunci nilai yang ingin Anda tarik.Rujuk MDN
sumber
Saya tidak melihat hal lain selain itu
for (var key in foo)
.sumber
Cara termudah adalah dengan menggunakan Underscore.js:
Ya, Anda membutuhkan perpustakaan tambahan, tetapi sangat mudah!
sumber
Tidak ada jalan lain selain itu
for ... in
. Jika Anda tidak ingin menggunakan itu (mungkin karena sedikit tidak efisien harus mengujihasOwnProperty
pada setiap iterasi?) Kemudian gunakan konstruksi yang berbeda, misalnya array kvp:sumber
Karena Anda sebutkan
$.each()
, berikut ini adalah pendekatan praktis yang akan bekerja di jQuery 1.6+:sumber
Object.keys () Metode Object.keys () mengembalikan array dari properti enumerable milik objek tertentu, dalam urutan yang sama dengan yang disediakan oleh for ... in loop (perbedaannya adalah for-in loop menyebutkan properti dalam rantai prototipe juga).
Object.values () Metode Object.values () mengembalikan array dari nilai properti enumerable milik objek tertentu, dalam urutan yang sama dengan yang disediakan oleh for ... in loop (perbedaannya adalah bahwa for-in loop enumerate properti dalam rantai prototipe juga).
Untuk lebih lanjut silakan kunjungi di sini
sumber
gunakan untuk setiap loop untuk mengakses kunci di Object atau Maps di javascript
Catatan: Anda juga bisa menggunakan
itu akan memberi Anda seperti ini:
[batang];
sumber
Yah
$.each
adalah membangun perpustakaan, sedangkanfor ... in
js asli, yang harus lebih baiksumber
Anda dapat menggunakan fungsionalitas Object.keys untuk mendapatkan kunci seperti:
sumber
untuk ditampilkan sebagai string, cukup gunakan:
sumber
cara terbaik untuk mendapatkan kunci / nilai objek.
sumber