Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Mencari Objek dengan Cekap dalam Tatasusunan JavaScript Berdasarkan Nilai Atribut?

Bagaimanakah Saya Boleh Mencari Objek dengan Cekap dalam Tatasusunan JavaScript Berdasarkan Nilai Atribut?

Mary-Kate Olsen
Lepaskan: 2024-12-18 21:00:15
asal
552 orang telah melayarinya

How Can I Efficiently Find Objects in JavaScript Arrays Based on Attribute Values?

Mencari Objek dalam Tatasusunan Berdasarkan Nilai Atribut dalam JavaScript

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.

Masalahnya

Pertimbangkan tatasusunan objek vendor berikut:

vendors = [{
    Name: 'Magenic',
    ID: 'ABC'
  },
  {
    Name: 'Microsoft',
    ID: 'DEF'
  } // and so on...
];
Salin selepas log masuk

Matlamatnya adalah untuk menentukan jika objek dengan atribut Name bersamaan dengan "Magenic" wujud dalam tatasusunan ini tanpa menggunakan gelung eksplisit.

The Penyelesaian

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!
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan