Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Menapis Sifat Objek dengan Kunci dalam ES6?

Bagaimana untuk Menapis Sifat Objek dengan Kunci dalam ES6?

Linda Hamilton
Lepaskan: 2024-11-09 17:02:02
asal
317 orang telah melayarinya

How to Filter Object Properties by Key in ES6?

Menapis Sifat Objek dengan Kunci dalam ES6

Dalam JavaScript, selalunya perlu menapis sifat objek berdasarkan kriteria tertentu. ES6 menyediakan cara yang bersih dan cekap untuk mencapainya melalui pengendali penyebaran.

Masalah:

Diberi objek seperti:

{
  item1: { key: 'sdfd', value: 'sdfd' },
  item2: { key: 'sdfd', value: 'sdfd' },
  item3: { key: 'sdfd', value: 'sdfd' }
}
Salin selepas log masuk

Matlamat adalah untuk mencipta objek baharu yang hanya menyertakan sifat dengan kunci tertentu, seperti sebagai:

{
  item1: { key: 'sdfd', value: 'sdfd' },
  item3: { key: 'sdfd', value: 'sdfd' }
}
Salin selepas log masuk

Penyelesaian:

ES6 membolehkan kami menapis sifat objek menggunakan gabungan kaedah Object.keys() dan Array.filter(), diikuti dengan kaedah Array.reduce() untuk mencipta objek baharu.

Kod yang disediakan menunjukkan perkara ini pendekatan:

const raw = {
  item1: { key: 'sdfd', value: 'sdfd' },
  item2: { key: 'sdfd', value: 'sdfd' },
  item3: { key: 'sdfd', value: 'sdfd' }
};

const allowed = ['item1', 'item3'];

const filtered = Object.keys(raw)
  .filter(key => allowed.includes(key))
  .reduce((obj, key) => {
    obj[key] = raw[key];
    return obj;
  }, {});

console.log(filtered);
Salin selepas log masuk

Dalam kod ini:

  1. Object.keys(raw) mengekstrak kunci objek ke dalam tatasusunan.
  2. Array.filter(key = > allowed.includes(key)) menapis kekunci berdasarkan yang dibenarkan nilai.
  3. Array.reduce((obj, key) => { /* ... */ }, {}) mengurangkan kekunci yang ditapis menjadi objek baharu, menyalin nilai sifat yang sepadan daripada yang asal objek.

Atas ialah kandungan terperinci Bagaimana untuk Menapis Sifat Objek dengan Kunci dalam ES6?. 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