Pendekatan terbaik saya adalah:
var item = {...}
var items = [{id:2}, {id:2}, {id:2}];
items[items.findIndex(el => el.id === item.id)] = item;
Referensi untuk findIndex
Dan jika Anda tidak ingin mengganti dengan objek baru, tetapi alih-alih menyalin bidang item
, Anda dapat menggunakan Object.assign
:
Object.assign(items[items.findIndex(el => el.id === item.id)], item)
sebagai alternatif dengan .map()
:
Object.assign(items, items.map(el => el.id === item.id? item : el))
Pendekatan fungsional :
Jangan memodifikasi array, gunakan yang baru, jadi Anda tidak menghasilkan efek samping
const updatedItems = items.map(el => el.id === item.id ? item : el)
item
berisiid
kunci? atau apakah Anda keberatan memiliki id serta semua properti dariitem
objek dalam entri array?