Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Menapis Objek JavaScript Dengan Cekap Berdasarkan Pelbagai Keadaan?

Bagaimana untuk Menapis Objek JavaScript Dengan Cekap Berdasarkan Pelbagai Keadaan?

Patricia Arquette
Lepaskan: 2024-10-27 07:28:28
asal
336 orang telah melayarinya

How to Efficiently Filter JavaScript Objects Based on Multiple Conditions?

Ringkaskan Penapisan Objek Kompleks dalam JavaScript dengan Berbilang Syarat

Pertimbangkan keperluan untuk menapis tatasusunan objek berdasarkan berbilang keadaan. Memandangkan tatasusunan pengguna dan objek penapis, tugasnya adalah untuk menapis pengguna berdasarkan sifat tertentu.

Pendekatan Awal:

Fungsi penapisan awal dilaksanakan yang berulang kali sifat penapis dan semak terhadap harta setiap pengguna. Walau bagaimanapun, pendekatan ini mungkin mengakibatkan padanan yang berlebihan.

Penyelesaian yang Diperbaiki:

Untuk menangani isu ini, fungsi penapis yang disemak semula boleh dilaksanakan seperti berikut:

<code class="javascript">users = users.filter(function(item) {
  for (var key in filter) {
    if (item[key] === undefined || item[key] != filter[key])
      return false;
  }
  return true;
});</code>
Salin selepas log masuk

Penjelasan:

Fungsi ini beroperasi seperti berikut:

  • Ia mencipta tatasusunan baharu dengan menapis tatasusunan asal.
  • Bagi setiap pengguna dalam tatasusunan asal, ia menyemak sama ada ia memenuhi semua syarat yang dinyatakan dalam objek penapis.
  • Jika pengguna gagal memenuhi sebarang syarat, ia dialih keluar daripada hasil yang ditapis.

Sampel Penggunaan:

Pertimbangkan contoh berikut:

<code class="javascript">var users = [{
    name: 'John',
    email: '[email&#160;protected]',
    age: 25,
    address: 'USA'
  },
  {
    name: 'Tom',
    email: '[email&#160;protected]',
    age: 35,
    address: 'England'
  },
  {
    name: 'Mark',
    email: '[email&#160;protected]',
    age: 28,
    address: 'England'
  }
];

var filter = {
  address: 'England',
  name: 'Mark'
};

console.log(users.filter(function(item) {
  for (var key in filter) {
    if (item[key] === undefined || item[key] != filter[key])
      return false;
  }
  return true;
}));</code>
Salin selepas log masuk

Output:

[
  {
    name: 'Mark',
    email: '[email&#160;protected]',
    age: 28,
    address: 'England'
  }
]
Salin selepas log masuk

Penapis yang disemak ini menggabungkan dengan berkesan berbilang syarat untuk menapis objek berdasarkan kriteria yang ditentukan.

Atas ialah kandungan terperinci Bagaimana untuk Menapis Objek JavaScript Dengan Cekap Berdasarkan Pelbagai Keadaan?. 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