Saya bertanya-tanya apakah ada cara dalam JavaScript untuk mengulangi objek seperti itu.
for(var i in myObject) {
// ...
}
Tapi dapatkan nama masing-masing properti seperti ini.
for(var i in myObject) {
separateObj[myObject[i].name] = myObject[i];
}
Sepertinya saya tidak dapat menemukan yang seperti itu di Google. Mereka mengatakan untuk memberikan nama variabel dengan mereka tetapi ini bukan pilihan untuk apa yang saya coba capai.
Terima kasih atas bantuan yang bisa Anda tawarkan.
javascript
object
properties
Olical
sumber
sumber
seperate
seharusnyaseparate
'l' + new Array(1000).join('o') + 'ng'
sejak itu.Jawaban:
Gunakan Object.keys ():
Object.keys()
memberi Anda array nama properti milik objek input.sumber
i
adalah namanya.Jadi Anda bisa melakukan:
sumber
hasOwnProperty
jika Anda tidak ingin properti yang diwarisi. Dengan begitu Anda tidak secara membabi buta mengikuti beberapa aturan. Mungkin dalam beberapa kasus Anda benar-benar ingin melihat properti yang diwarisi. Cara lain untuk mengulang melalui properti objek sendiri adalah menggunakan Object.keys .Object.keys(obj).forEach(function(prop){ alert obj[prop]})
Penafian Saya salah mengerti pertanyaannya adalah: "Dapatkah saya tahu nama properti tempat objek itu dilampirkan", tetapi memilih untuk meninggalkan jawabannya karena beberapa orang mungkin berakhir di sini saat mencari untuk itu.
Tidak, suatu objek dapat dilampirkan ke beberapa properti, sehingga tidak memiliki cara untuk mengetahui namanya.
Siapa nama keberatan itu?
Apakah Anda yakin tidak hanya menginginkan nama properti dari for for loop?
sumber
Anda dapat dengan mudah beralih pada objek
mis: jika objeknya var a = {a: 'apple', b: 'ball', c: 'cat', d: 'doll', e: 'elephant'};
sumber
untuk mengakses langsung properti objek dengan posisi ... umumnya berguna untuk properti [0] ... sehingga menyimpan info tentang lebih lanjut ... atau dalam node.js 'require.cache [0]' untuk modul eksternal pertama yang dimuat , dll.
sumber
Selain "Object.keys (obj)", kami memiliki loop "for ... in" yang sangat sederhana - yang melingkupi nama properti objek yang dapat dihitung.
sumber
Untuk mendapatkan properti objek atau "kunci array" atau "indeks array" tergantung pada apa bahasa asli Anda ..... Gunakan metode Object.keys ().
Penting, ini hanya kompatibel dengan "Browser modern":
Jadi, jika objek Anda dipanggil, myObject ...
Walla! Ini pasti akan bekerja di firefox terbaru dan ie11 dan chrome ...
Berikut ini beberapa dokumentasi di MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
sumber
DALAM ES5
Misalnya Anda memiliki objek seperti ini:
Dan sekarang jika Anda ingin memiliki fungsi yang jika Anda lulus '0' sebagai param - untuk mendapatkan 'STEP_ELEMENT', jika '2' untuk mendapatkan 'BLUE_ELEMENT' dan untuk
Ini mungkin bukan solusi terbaik untuk masalah ini tetapi bagus untuk memberi Anda ide bagaimana melakukannya.
Bersulang.
sumber
Mulai 2018, Anda dapat menggunakan
Object.getOwnPropertyNames()
sebagaimana dijelaskan dalam Dokumentasi Mozilla Pengembangsumber
Ketika Anda melakukan for / in loop yang Anda pasang terlebih dahulu, saya adalah nama properti. Jadi, Anda memiliki nama properti, i, dan mengakses nilainya dengan melakukan myObject [i].
sumber
Solusi ini juga berfungsi.
sumber
Menggunakan
Object.keys()
fungsi untuk mendapatkan properti dari suatuObject
, dan itu dapat membantu mencari properti dengan nama, misalnya:sumber
Cepat & kotor:
sumber