ภาพรวม
สมมติว่าเรามีอาร์เรย์ของอ็อบเจ็กต์:
const arr = [
{id:123, value:"value1", name:"Name1"},
{id:124, value:"value2", name:"Name1"},
{id:125, value:"value3", name:"Name2"},
{id:126, value:"value4", name:"Name2"}
];
สังเกตว่าคุณสมบัติ name บางส่วนซ้ำกัน เราต้องเขียนฟังก์ชันที่สร้างอาร์เรย์สตริงใหม่ที่มีเฉพาะค่า name ที่ไม่ซ้ำกัน
ผลลัพธ์ที่คาดหวัง
const output = ["Name1", "Name2"];
ตัวอย่างโค้ด
const arr = [
{id:123, value:"value1", name:"Name1"},
{id:124, value:"value2", name:"Name1"},
{id:125, value:"value3", name:"Name2"},
{id:126, value:"value4", name:"Name2"}
];
const pickNames = (arr = []) => {
const res = [];
for (let i = arr.length; i--;) {
if (res.indexOf(arr[i].name) < 0) {
res.push(arr[i].name);
}
}
return res;
};
console.log(pickNames(arr));
ผลลัพธ์ในคอนโซล
[ 'Name2', 'Name1' ]