Lebih
Bagaimana menemukan jika array berisi string tertentu dalam JavaScript/jQuery?
Dapatkah seseorang memberitahu saya bagaimana untuk mendeteksi jika "specialword"
muncul dalam array? Contoh:
categories: [
"specialword"
"word1"
"word2"
]
564
5
Anda benar-benar don't perlu jQuery untuk ini.
atau
It's dicatat bahwa
array.indexOf(..)
adalah tidak didukung di IE < 9, tetapi jQuery'sindexOf(...)
fungsi ini akan bekerja bahkan untuk versi yang lebih tua.jQuery menawarkan
$.inArray
:Perhatikan bahwa inArray mengembalikan indeks dari elemen yang ditemukan, sehingga
0
menunjukkan elemen pertama dalam array.-1
menunjukkan elemen tidak ditemukan.Edit 3,5 tahun kemudian
$.inArray
lebih efektif pembungkus untukArray.prototipe.indexOf
di browser yang mendukung (hampir semua dari mereka hari ini), sambil memberikan shim pada orang-orang yang don't. Hal ini pada dasarnya sama dengan menambahkan shim untukArray.prototipe
, yang lebih idiomatik/JSish cara melakukan sesuatu. MDN menyediakan kode tersebut. Hari-hari ini saya akan mengambil pilihan ini, daripada menggunakan jQuery wrapper.Edit lagi 3 tahun kemudian
Wah, 6,5 tahun?!
Pilihan terbaik untuk ini di modern Javascript
Array.prototipe.termasuk
:Tidak ada perbandingan dan tidak membingungkan
-1
hasil. Itu tidak apa yang kita inginkan: mengembalikantrue
ataufalse
. Untuk browser lama itu's polyfillable menggunakan kode di MDN.Di sini anda pergi:
Fungsi ini mengembalikan sebuah integer positif (indeks array dari nilai yang diberikan), atau
-1
jika nilai yang diberikan tidak ditemukan dalam array.Demo Live: http://jsfiddle.net/simevidas/5Gdfc/
Anda mungkin ingin menggunakan ini seperti:
Anda dapat menggunakan
untuk
loop:Saya don't seperti
$.inArray(..)
, it's jenis jelek, jQuery-ish solusi yang paling waras orang-orang yang tidak't mentolerir. Berikut ini's cuplikan yang menambahkan sederhanaberisi(str)
metode untuk gudang senjata anda:Demikian pula, anda bisa membungkus
$.inArray
di perpanjangan: