Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Melaksanakan Kaedah `filter()` Tersuai untuk Objek dalam JavaScript?

Bagaimana untuk Melaksanakan Kaedah `filter()` Tersuai untuk Objek dalam JavaScript?

Patricia Arquette
Lepaskan: 2024-11-13 12:13:02
asal
838 orang telah melayarinya

How to Implement a Custom `filter()` Method for Objects in JavaScript?

JavaScript: Melaksanakan Kaedah penapis Tersuai() untuk Objek

Spesifikasi ECMAScript 5 memperkenalkan prototaip penapis() untuk tatasusunan, tetapi tidak untuk objek. Memanjangkan objek terbina dalam JavaScript biasanya tidak digalakkan. Walau bagaimanapun, jika dikehendaki, seseorang boleh mencipta fungsi penapis() tersuai untuk objek menggunakan pendekatan berikut:

1. Menggunakan reduce() dan Object.keys()

Object.filter = (obj, predicate) =>
  Object.keys(obj)
    .filter(key => predicate(obj[key]))
    .reduce((res, key) => (res[key] = obj[key], res), {});

// Example:
const scores = {
  John: 2,
  Sarah: 3,
  Janet: 1
};
const filtered = Object.filter(scores, score => score > 1);
console.log(filtered);
Salin selepas log masuk

2. Menggunakan reduce() dan Object.keys() dengan Object.assign()

Object.filter = (obj, predicate) =>
  Object.keys(obj)
    .filter(key => predicate(obj[key]))
    .reduce((res, key) => Object.assign(res, { [key]: obj[key] }), {});

// Example: same as above
Salin selepas log masuk

3. Menggunakan map() dan menyebarkan sintaks

Object.filter = (obj, predicate) =>
  Object.fromEntries(
    Object.entries(obj)
      .filter(([key, value]) => predicate(value))
      .map(([key, value]) => [key, value])
  );

// Example: same as above
Salin selepas log masuk

4. Menggunakan Object.entry() dan Object.fromEntries()

Object.filter = (obj, predicate) =>
  Object.fromEntries(
    Object.entries(obj).filter(([key, value]) => predicate(value))
  );

// Example: same as above
Salin selepas log masuk

Ingat, melanjutkan prototaip terbina dalam boleh mendatangkan akibat yang tidak diingini. Secara umumnya adalah lebih baik untuk menyediakan fungsi tersuai sebagai utiliti yang berdiri sendiri atau memanjangkan objek global khusus untuk fungsi tertentu.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Kaedah `filter()` Tersuai untuk Objek 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan