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"}
];

โปรดทราบว่าคุณสมบัติ "ชื่อ" บางอย่างในออบเจ็กต์ภายในอาร์เรย์นั้นซ้ำกัน

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของอ็อบเจ็กต์ดังกล่าว จากนั้นฟังก์ชันควรสร้างอาร์เรย์ใหม่ของสตริงที่มีเฉพาะค่าคุณสมบัติ "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' ]