Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menentukan dengan Cekap jika Nilai Wujud dalam Tatasusunan JavaScript?

Bagaimanakah Saya Boleh Menentukan dengan Cekap jika Nilai Wujud dalam Tatasusunan JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-12-07 22:52:13816semak imbas

How Can I Efficiently Determine if a Value Exists in a JavaScript Array?

Penerokaan Mendalam Penentuan Nilai Tatasusunan

Dalam JavaScript, menentukan sama ada unsur wujud dalam tatasusunan boleh menjadi tugas pengaturcaraan biasa. Untuk menangani perkara ini, kami memperkenalkan teknik lelaran tatasusunan.

Fungsi yang disediakan:

Array.prototype.contains = function(obj) {
    var i = this.length;
    while (i--) {
        if (this[i] == obj) {
            return true;
        }
    }
    return false;
}

Malangnya, fungsi ini secara konsisten mengembalikan palsu. Satu isu yang berpotensi terletak pada pengendali kesaksamaan (==) yang digunakan dalam pernyataan if, yang menyemak paksaan jenis dan bukannya kesaksamaan yang ketat. Menyemak baris ini kepada if (this[i] === obj) akan menyelesaikan isu.

Walau bagaimanapun, penyelesaian yang lebih cekap dan ringkas tersedia menggunakan fungsi utiliti jQuery:

$.inArray(value, array)

Fungsi ini mencari kedudukan nilai tertentu dalam tatasusunan, mengembalikan indeks jika ditemui atau -1 jika tidak.

Dalam yang disediakan contoh:

arrValues = ["Sam","Great", "Sample", "High"]
alert(arrValues.contains("Sam"));

Output yang dijangkakan adalah benar menggunakan fungsi tersuai kami (selepas membetulkan semakan kesamaan) atau 0 menggunakan $.inArray jQuery.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan dengan Cekap jika Nilai Wujud dalam Tatasusunan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn