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

Bagaimana untuk Menapis Objek JavaScript Dengan Cekap Berdasarkan Pelbagai Keadaan?

Patricia Arquette
Patricia Arquetteasal
2024-10-27 07:28:28251semak imbas

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>

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>

Output:

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

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!

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