สมมติว่าเรามีข้อมูลเกี่ยวกับรูปภาพบางส่วนในอาร์เรย์ดังนี้
const arr = [{
'image': "jv2bcutaxrms4i_img.png",
'gallery_image': true
}, {
'image': "abs.png",
'gallery_image': true
}, {
'image': "acd.png",
'gallery_image': false
}, {
'image': "jv2bcutaxrms4i_img.png",
'gallery_image': true
}, {
'image': "abs.png",
'gallery_image': true
}, {
'image': "acd.png",
'gallery_image': false
}];เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ดังกล่าว
ฟังก์ชันควรลบออบเจกต์ออกจากอาร์เรย์ที่มีค่าซ้ำสำหรับ property 'image'
ตัวอย่างโค้ด
โค้ดสำหรับการทำงานนี้จะเป็นดังนี้
const arr = [{
'image': "jv2bcutaxrms4i_img.png",
'gallery_image': true
}, {
'image': "abs.png",
'gallery_image': true
}, {
'image': "acd.png",
'gallery_image': false
}, {
'image': "jv2bcutaxrms4i_img.png",
'gallery_image': true
}, {
'image': "abs.png",
'gallery_image': true
}, {
'image': "acd.png",
'gallery_image': false
}];
const buildUnique = (arr = []) => {
const unique = [];
arr.forEach(obj => {
let found = false;
unique.forEach(uniqueObj => {
if(uniqueObj.image === obj.image) {
found = true;
};
});
if(!found){
unique.push(obj);
};
});
return unique;
};
console.log(buildUnique(arr));ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้
[
{ image: 'jv2bcutaxrms4i_img.png', gallery_image: true },
{ image: 'abs.png', gallery_image: true },
{ image: 'acd.png', gallery_image: false }
]