Giả sử chúng ta có mảng lồng nhau sau:
const arr = [
[
['dog', 'Harry'], ['age', 2]
],
[
['dog', 'Roger'], ['age', 5]
]
];
Chúng ta cần viết một hàm JavaScript nhận vào một mảng lồng nhau như vậy. Hàm sẽ tạo ra một mảng đối tượng dựa trên mảng đầu vào.
Đối tượng đầu ra cho mảng trên sẽ trông như sau:
const output = [
{dog: 'Harry', age: 2},
{dog: 'Roger', age: 5}
];
Ví dụ
Mã thực hiện như sau:
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));
Kết quả
Kết quả trong console sẽ là:
[ { dog: 'Harry', age: 2 }, { dog: 'Roger', age: 5 } ]