Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mencari Objek dengan Cekap dalam Tatasusunan JavaScript Berdasarkan Nilai Atribut?
Apabila berurusan dengan tatasusunan objek, selalunya perlu mencari elemen tertentu berdasarkan nilai atribut. Ini amat berguna apabila bekerja dengan tatasusunan yang besar untuk mengelakkan gelung yang tidak cekap.
Pertimbangkan tatasusunan objek vendor berikut:
vendors = [{ Name: 'Magenic', ID: 'ABC' }, { Name: 'Microsoft', ID: 'DEF' } // and so on... ];
Matlamatnya adalah untuk menentukan jika objek dengan atribut Name bersamaan dengan "Magenic" wujud dalam tatasusunan ini tanpa menggunakan gelung eksplisit.
JavaScript moden menyediakan beberapa kaedah tatasusunan yang menjadikan tugasan ini mudah:
Menggunakan beberapa:
if (vendors.some(e => e.Name === 'Magenic')) { // We found at least one object that we're looking for! }
sesetengahnya mengulangi tatasusunan dan mengembalikan benar sebaik sahaja ia menjumpai elemen yang sepadan dengan keadaan yang ditentukan.
Menggunakan find:
if (vendors.find(e => e.Name === 'Magenic')) { // Usually the same result as above, but find returns the found object instead of a boolean }
find berkelakuan serupa dengan beberapa, tetapi bukannya mengembalikan boolean, ia mengembalikan elemen pertama yang sepadan dengan syarat.
Mendapatkan Kedudukan Objek :
Untuk mendapatkan kedudukan elemen padanan, gunakan findIndex:
const i = vendors.findIndex(e => e.Name === 'Magenic'); if (i > -1) { // We know that at least 1 object that matches has been found at the index i }
Mencari Semua Objek Padanan:
if (vendors.filter(e => e.Name === 'Magenic').length > 0) { // The same result as above, but filter returns all objects that match }
penapis mengembalikan tatasusunan semua elemen yang memenuhi syarat yang ditentukan.
Keserasian dengan Pelayar Lama:
Untuk pelayar yang tidak menyokong fungsi anak panah, pendekatan alternatif menggunakan kaedah penapis standard ialah:
if (vendors.filter(function(e) { return e.Name === 'Magenic'; }).length > 0) { // The same result as above, but filter returns all objects that match and we avoid an arrow function for compatibility }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Objek dengan Cekap dalam Tatasusunan JavaScript Berdasarkan Nilai Atribut?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!