Bagaimana untuk Menapis Susunan Objek Berdasarkan Pelbagai Keadaan dalam JavaScript?

DDD
Lepaskan: 2024-10-26 03:09:27
asal
704 orang telah melayarinya

How to Filter an Array of Objects Based on Multiple Conditions in JavaScript?

Menapis Tatasusunan Objek Berdasarkan Berbilang Keadaan dalam JavaScript

Masalah:

Diberikan tatasusunan objek dan penapis objek, kami menyasarkan untuk menapis elemen tatasusunan berdasarkan berbilang syarat yang dinyatakan dalam objek penapis. Walau bagaimanapun, pelaksanaan semasa menghadapi isu di mana berbilang elemen memenuhi hanya subset syarat disertakan dalam hasilnya.

Penyelesaian:

Isu timbul daripada penggunaan yang salah daripada gelung untuk (var i = 0; i < filter.length; i ) dalam fungsi penapisan. Memandangkan penapis ialah objek, ia tidak mempunyai sifat panjang dan gelung ini menjadi berlebihan.

Untuk menangani perkara ini, kita boleh lelaran terus ke atas sifat objek penapis dan menyemak kewujudan sifat pada setiap objek pengguna . Kod berikut menunjukkan pelaksanaan yang betul:

<code class="javascript">function filterUsers(users, filter) {
  var result = [];
  for (var prop in filter) {
    if (filter.hasOwnProperty(prop)) {
      users.forEach(function(user) {
        if (user[prop] === filter[prop]) {
          result.push(user);
        }
      });
    }
  }
  return result;
}</code>
Salin selepas log masuk

Fungsi Penapis yang Diperbaiki:

Fungsi Penapis yang dipertingkatkan kini beralih kepada pengguna dan menyemak setiap sifat objek penapis untuk melihat sama ada ia sepadan dengan nilai harta pengguna yang sepadan. Hanya pengguna dengan nilai yang sepadan untuk semua sifat yang ditentukan disertakan dalam hasilnya.

Contoh:

<code class="javascript">var filter = {
  address: 'England',
  name: 'Mark',
};
var users = [{
  name: 'John',
  email: 'john@example.com',
  age: 25,
  address: 'USA',
},
{
  name: 'Tom',
  email: 'tom@example.com',
  age: 35,
  address: 'England',
},
{
  name: 'Mark',
  email: 'mark@example.com',
  age: 28,
  address: 'England',
},
];

var filteredUsers = filterUsers(users, filter);

console.log(filteredUsers);
// Output: [{
//   name: 'Mark',
//   email: 'mark@example.com',
//   age: 28,
//   address: 'England',
// }]</code>
Salin selepas log masuk

Pelaksanaan ini memastikan bahawa hanya pengguna yang namanya Mark dan yang tinggal di England disertakan dalam keputusan, seperti yang ditentukan oleh syarat penapis.

Atas ialah kandungan terperinci Bagaimana untuk Menapis Susunan Objek Berdasarkan Pelbagai Keadaan dalam JavaScript?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!