Bagaimana untuk menyemak sama ada tatasusunan mengandungi nilai dalam JavaScript?
P粉592085423
P粉592085423 2023-08-23 11:09:10
0
2
360

Apakah cara yang paling bersih, paling berkesan untuk mengetahui sama ada tatasusunan JavaScript mengandungi nilai?

Ini adalah satu-satunya cara yang saya tahu:

fungsi mengandungi(a, obj) { untuk (var i = 0; i < a.length; i++) { jika (a[i] === obj) { kembali benar; } } kembali palsu; }

Adakah cara yang lebih baik dan bersih untuk mencapai matlamat ini?

Ini berkaitan dengan soalan Stack Overflow Apakah cara terbaik untuk mencari item dalam tatasusunan JavaScript? Berkait rapat, soalan ini menangani mencari objek dalam tatasusunan menggunakan indexOf.

P粉592085423
P粉592085423

membalas semua (2)
P粉788571316

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, tetapitelah terbuktibahawa gelungwhilemenurun 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粉076987386

    Pelayar moden mempunyaiArray#includesyangtepatmelakukan ini dandisokong secara meluas oleh semua orang kecuali IE:

    console.log(['joe', 'jane', 'mary'].includes('jane')); // true
      Muat turun terkini
      Lagi>
      kesan web
      Kod sumber laman web
      Bahan laman web
      Templat hujung hadapan
      Tentang kita Penafian Sitemap
      Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!