Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การลบรายการซ้ำและแมปอาร์เรย์ใน JavaScript


ภาพรวม

สมมติว่าเรามีอาร์เรย์ของอ็อบเจ็กต์:

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' ]