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

แปลงข้อมูลจากอาร์เรย์แบบซ้อน (nested array) เป็นอ็อบเจ็กต์ใน JavaScript

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

const arr = [
  [
    ['dog', 'Harry'], ['age', 2]
  ],
  [
    ['dog', 'Roger'], ['age', 5]
  ]
];

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ซ้อนแบบนี้เข้ามา แล้วสร้างอ็อบเจ็กต์ตามโครงสร้างของอาร์เรย์

ผลลัพธ์ที่คาดหวังสำหรับอาร์เรย์ข้างต้นควรเป็นดังนี้:

const output = [
  {dog: 'Harry', age: 2},
  {dog: 'Roger', age: 5}
];

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

โค้ดสำหรับทำสิ่งนี้คือ:

const arr = [
  [
    ['dog', 'Harry'], ['age', 2]
  ],
  [
    ['dog', 'Roger'], ['age', 5]
  ]
];
const prepareObjectArray = (arr = []) => {
  const copy = arr.slice();
  copy.forEach((el, ind, array) => {
    el.forEach((element, index, subArray) => {
      subArray[element[0]] = element[1];
    });
    el.length = 0;
    array[ind] = Object.assign({}, array[ind]);
  });
  return copy;
};
console.log(prepareObjectArray(arr));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็นดังนี้:

[ { dog: 'Harry', age: 2 }, { dog: 'Roger', age: 5 } ]