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

การแปลงอาร์เรย์ของอ็อบเจ็กต์เป็นอ็อบเจ็กต์ของอ็อบเจ็กต์ใน JavaScript


ภาพรวม

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

const arr = [{id:1, name:"aa"}, {id:2, name:"bb"}, {id:3, name:"cc"}];

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ดังกล่าวและคืนค่าเป็นอ็อบเจ็กต์ของอ็อบเจ็กต์ โดยใช้คุณสมบัติ id เป็นคีย์ของแต่ละอ็อบเจ็กต์ย่อย และลบคุณสมบัติ id ออกจากอ็อบเจ็กต์ย่อยเหล่านั้น

ผลลัพธ์ที่คาดหวัง

const output = {1:{name:"aa"}, 2:{name:"bb"}, 3:{name:"cc"}};

ตัวอย่างโค้ด

const arr = [{id:1, name:"aa"}, {id:2, name:"bb"}, {id:3, name:"cc"}];

const arrayToObject = arr => {
  const res = {};
  for(let i = 0; i < arr.length; i++) {
    const key = arr[i]['id'];
    res[key] = arr[i];
    delete res[key]['id'];
  }
  return res;
};

console.log(arrayToObject(arr));

ผลลัพธ์ในคอนโซล

{ '1': { name: 'aa' }, '2': { name: 'bb' }, '3': { name: 'cc' } }