Saya memiliki objek JavaScript berikut:
var obj = {
"key1" : val,
"key2" : val,
"key3" : val
}
Apakah ada cara untuk memeriksa apakah ada kunci dalam larik, serupa dengan ini?
testArray = jQuery.inArray("key1", obj);
tidak bekerja.
Apakah saya harus mengulang-ulang keberatan seperti ini?
jQuery.each(obj, function(key,val)){}
javascript
jquery
pengguna2065483
sumber
sumber
obj.has("key1")
akan berfungsi jika Anda menggunakan ES6.obj.hasOwnProperty("key1")
bukan hanyahas
?Jawaban:
Gunakan
in
operator :testArray = 'key1' in obj;
Catatan samping: Apa yang Anda dapatkan di sana, sebenarnya bukanlah objek jQuery, tetapi hanya Objek JavaScript biasa.
sumber
in
seperti ini?testArray = !( 'key1' in obj);
?Itu bukan objek jQuery, itu hanya sebuah objek.
Anda dapat menggunakan metode hasOwnProperty untuk memeriksa kunci:
if (obj.hasOwnProperty("key1")) { ... }
sumber
var obj = { "key1" : "k1", "key2" : "k2", "key3" : "k3" }; if ("key1" in obj) console.log("has key1 in obj");
================================================== =======================
Untuk mengakses kunci anak dari kunci lain
var obj = { "key1": "k1", "key2": "k2", "key3": "k3", "key4": { "keyF": "kf" } }; if ("keyF" in obj.key4) console.log("has keyF in obj");
sumber
if (!("key1" in obj)) { console.log("no key1 in obj"); }
Jawaban di atas bagus. Tapi ini juga bagus dan berguna.
!obj['your_key'] // if 'your_key' not in obj the result --> true
Ini bagus untuk gaya pendek kode khusus dalam pernyataan if:
if (!obj['your_key']){ // if 'your_key' not exist in obj console.log('key not in obj'); } else { // if 'your_key' exist in obj console.log('key exist in obj'); }
Catatan: Jika kunci Anda sama dengan null atau pernyataan "" your "if" akan salah.
obj = {'a': '', 'b': null, 'd': 'value'} !obj['a'] // result ---> true !obj['b'] // result ---> true !obj['c'] // result ---> true !obj['d'] // result ---> false
Jadi, cara terbaik untuk memeriksa apakah ada kunci di objek adalah:
'a' in obj
sumber
Anda dapat mencoba ini:
const data = { name : "Test", value: 12 } if("name" in data){ //Found } else { //Not found }
sumber
map.has(key)
adalah cara ECMAScript 2015 terbaru untuk memeriksa keberadaan kunci di peta. Lihat ini untuk detail lengkap.sumber
cara paling sederhana adalah
const obj = { a: 'value of a', b: 'value of b', c: 'value of c' }; if(obj.a){ console.log(obj.a); }else{ console.log('obj.a does not exist'); }
sumber
a
berupa string kosong, nol atau nol, ia akan tetap mengembalikan 'obj.a tidak ada', meskipun kuncinyaa
memang ada.