Rumah > Soal Jawab > teks badan
P粉7885713162023-08-24 00:43:22
Kemas kini 2019: Jawapan ini adalah dari 2008 (11 tahun!) dan tiada kaitan dengan penggunaan JS moden. Peningkatan prestasi yang dijanjikan adalah berdasarkan ujian penanda aras yang diselesaikan dalam penyemak imbas pada masa itu. Ia mungkin tidak berkaitan dengan konteks pelaksanaan JS moden. Jika anda memerlukan penyelesaian yang mudah, cari jawapan lain. Jika anda memerlukan prestasi terbaik, tanda aras diri anda dalam persekitaran pelaksanaan yang berkaitan.
Seperti yang orang lain katakan, melelaran melalui tatasusunan mungkin merupakan cara terbaik untuk melakukannya, tetapi telah terbukti bahawa gelung while
menurun ialah cara terpantas untuk melelaran dalam JavaScript. Oleh itu, anda mungkin perlu menulis semula kod anda seperti berikut:
function contains(a, obj) { var i = a.length; while (i--) { if (a[i] === obj) { return true; } } return false; }
Sudah tentu, anda juga boleh memanjangkan prototaip Array:
Array.prototype.contains = function(obj) { var i = this.length; while (i--) { if (this[i] === obj) { return true; } } return false; }
Kini anda boleh menggunakan:
alert([1, 2, 3].contains(2)); // => true alert([1, 2, 3].contains('2')); // => false
P粉0769873862023-08-24 00:14:12
Pelayar moden mempunyai Array#includes
yang tepat melakukan ini dan disokong secara meluas oleh semua orang kecuali IE :
console.log(['joe', 'jane', 'mary'].includes('jane')); // true