Ini adalah format array JSON pertama saya:
this.columnNames = [
{field : "Name"},
{field : "Address"},
{field : "Age"}
];
Ini adalah format array JSON pertama saya:
this.rowData = [
{Name : "Praveen",Address : "aiff",Age : "12",w : "1",e : "8"},
{Name : "Akashay",Address : "xvn",Age : "15",w : "2",e : "7"},
{Name : "Bala",Address : "hjk",Age : "16",w : "3",e : "6"},
{Name : "Charu",Address : "sss",Age : "17",w : "4",e : "5"},
];
Di sini saya ingin membandingkan VALUE yang ada di yang pertama array(columnNames)
dan tombol-tombol yang ada di array kedua. Jika sama, maka saya ingin mendorong data yang cocok dari yang kedua array(rowData)
ke array yang baru.
Dan saya ingin hasil akhir saya seperti ini:
public rowData: any =[
{Name : "Praveen",Address : "aiff",Age : "12"},
{Name : "Akashay",Address : "xvn",Age : "15"},
{Name : "Bala",Address : "hjk",Age : "16"},
{Name : "Charu",Address : "sss",Age : "17"},
];
arrays
angular
comparison
Praveen Sivanadiyar
sumber
sumber
Jawaban:
Raih bidang dari setiap objek dalam
columnNames
array Anda menggunakan.map()
. Lalu, petakan setiap objekrowData
ke objek baru yang dibuat menggunakan.reduce()
, yang hanya menyertakan kunci darifields
array Anda :Jika Anda dapat mendukung
Object.fromEntries()
(yang mengambil array[key, value]
pasangan bersarang dan membuat objek dari mereka), maka tidak perlu menggunakan.reduce()
:sumber
Anda bisa
filter
properti objek Anda berdasarkancolumnNames
array dan kemudian hanya membuat objek menggunakanObject.fromEntries
:Sebuah contoh:
Atau lebih banyak versi debuggable:
Sebuah contoh:
Object.fromEntries adalah metode yang mengubah daftar pasangan kunci-nilai menjadi objek.
Baris berikut berarti bahwa kami memfilter
allProperies
array () berdasarkan padacolumnNames
array.beberapa () metode kembali
true
jika beberapa properticolumnNames
ada diallProperties
:sumber
Simpan semua nama bidang dalam variabel
keys
menggunakan .map . Kemudian putar melalui array asli dan buat objek yang memiliki propertikeys
Coba seperti ini:
Demo yang Bekerja
sumber
obj
adalah objek kosong baru.obj[key] = item[key]
berarti, mengambil loop pertama, kuncinya adalah "Nama", sehinggaobj[key]
akan{Name: }
danitem.Name
adalahPraveen
, sehingga hasilnya akan{Name: "Praveen" }