สมมติว่าเรามีอาร์เรย์ของอาร์เรย์ดังนี้:
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 } ]