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
Mary-Kate Olsenasal
2024-12-18 21:00:15516semak imbas

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...
];

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!
}

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!

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