Saya memiliki kamus yang memiliki format
dictionary = {0: {object}, 1:{object}, 2:{object}}
Bagaimana saya bisa mengulangi kamus ini dengan melakukan sesuatu seperti
for((key,value) in dictionary){
//Do stuff where key would be 0 and value would be the object
}
javascript
object
iteration
nbroeking
sumber
sumber
for (let [key, value] of Object.entries(obj))
, butuh Babel.Jawaban:
tl; dr
Map
s.ECMAScript 5:
Tidak, ini tidak mungkin dengan objek.
Anda harus beralih dengan
for..in
, atauObject.keys
, seperti iniCatatan: The
if
kondisi di atas diperlukan, hanya jika Anda ingin iterate sifat yangdictionary
objek sangat sendiri. Karenafor..in
akan beralih melalui semua properti enumerable yang diwarisi.Atau
ECMAScript 2015
Di ECMAScript 2015, Anda bisa menggunakan
Map
objek dan beralih denganMap.prototype.entries
. Mengutip contoh dari halaman itu,Atau beralih dengan
for..of
, seperti iniKeluaran
Atau
Keluaran
ECMAScript 2017
ECMAScript 2017 akan memperkenalkan fungsi baru
Object.entries
. Anda dapat menggunakan ini untuk mengulangi objek seperti yang Anda inginkan.Keluaran
sumber
Object.keys(dictionary).forEach(function(key) {…
sangat mudah dibaca, dan kompatibel.Object.entries(object).forEach(([key, val]) => {...});
Coba ini:
sumber
The
Object.entries()
Metode telah ditentukan dalam ES2017 (dan didukung di semua browser modern ):Penjelasan:
Object.entries()
mengambil objek seperti{ a: 1, b: 2, c: 3 }
dan mengubahnya menjadi sebuah array dari pasangan kunci-nilai:[ [ 'a', 1 ], [ 'b', 2 ], [ 'c', 3 ] ]
.Dengan
for ... of
kita dapat mengulang entri dari array yang dibuat.Karena kami dijamin bahwa masing-masing item array yang diiterasi itu sendiri merupakan array dua entri, kami dapat menggunakan destrstruktur untuk secara langsung menetapkan variabel
key
danvalue
ke item pertama dan kedua.sumber
Anda dapat melakukan sesuatu seperti ini:
sumber
Coba ini:
sumber
SELAMAT DATANG DI 2020 * Air liur di ES6 *
Ada beberapa jawaban yang cukup lama di sini - manfaatkan perusakan. Menurut pendapat saya ini tanpa diragukan lagi cara terbaik (sangat mudah dibaca) untuk beralih objek.
sumber
forEach
dengan yang dimap
atas, maka dimungkinkan untuk mengumpulkan nilai.map
kemudian akan mengembalikan daftar nilai-nilai tersebut, sehingga berpotensi menyederhanakan kode dengan cara lain.Saya pikir cara yang cepat dan mudah adalah
cukup periksa dokumentasi https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
sumber
${key} ${value}
);});menggunakan swagger-ui.js
kamu bisa melakukan ini -
sumber
Anda dapat menggunakan skrip di bawah ini.
output
1 a
2 b
c 3
sumber
Sebagai peningkatan pada jawaban yang diterima, untuk mengurangi bersarang, Anda bisa melakukan ini, asalkan kuncinya tidak diwarisi:
Edit: info tentang
Object.hasOwnProperty
di sinisumber