Saya memiliki objek di JavaScript:
var obj = {
"a": "test1",
"b": "test2"
}
Bagaimana cara memeriksa bahwa test1 ada di objek sebagai nilai?
javascript
Brown KL
sumber
sumber
Object.values(obj).includes('test1');
Jawaban:
Anda dapat mengubah nilai Objek menjadi larik dan menguji apakah ada string. Ini mengasumsikan bahwa Objek tidak bersarang dan stringnya sama persis:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values
sumber
if(Object.values(obj).includes('test1')) { ... }
Anda dapat menggunakan metode Array
.some
:sumber
Mencoba:
Atau
Ini tidak akan berhasil untuk
NaN
dan-0
untuk nilai-nilai itu. Anda dapat menggunakan (alih-alih===
) apa yang baru di ECMAScript 6:Dengan browser modern, Anda juga dapat menggunakan:
sumber
Gunakan
for...in
loop:sumber
ES6 terpendek + satu liner:
sumber
Anda bisa menggunakan Object.values () :
lalu gunakan metode indexOf () :
Sebagai contoh:
Contoh yang lebih bertele-tele ada di bawah ini:
sumber
Saya melakukan tes dengan semua contoh ini, dan saya menjalankan ini di Node.js v8.11.2 . Ambil ini sebagai panduan untuk memilih pilihan terbaik Anda.
Output di server saya
sumber
Untuk satu baris, saya akan mengatakan:
sumber
Anda bisa mencoba ini:
sumber
Anda bisa mencoba yang ini
sumber
Fungsi yang disebut:
sumber
Metode Object.values () mengembalikan larik (ditugaskan ke getValuesOfObject) yang berisi nilai properti enumerable milik objek (obj) yang diberikan. Larik
for
diulang menggunakan perulangan untuk mengambil setiap nilai (nilai dalam getValuesfromObject) dan mengembalikan fungsi Boolean () untuk mengetahui apakah ekspresi ("text1" adalah nilai dalam larik perulangan) benar.sumber
sumber
Jawaban sederhana untuk ini diberikan di bawah ini.
Ini berfungsi karena setiap jenis JavaScript memiliki properti "konstruktor" pada prototipe itu ".
sumber
Ini harus menjadi pemeriksaan sederhana.
Contoh 1
sumber
var a = {};
<br/>'hasOwnProperty' in a' //true