Giả sử chúng ta có một mảng các mảng như sau:
const arr = [
[
['firstName', 'Joe'],
['lastName', 'Blow'],
['age', 42],
['role', 'clerk'],
[
['firstName', 'Mary'],
['lastName', 'Jenkins'],
['age', 36],
['role', 'manager']
]
]
];
Chúng ta cần viết một hàm JavaScript nhận một mảng như vậy. Hàm sẽ xây dựng một mảng đối tượng dựa trên mảng các mảng này.
Mảng đầu ra nên chứa một đối tượng cho mỗi người dùng duy nhất và các chi tiết khác về nó.
Do đó, đầu ra cho mảng nên trông như:
const output = [
{firstName: 'Joe', lastName: 'Blow', age: 42, role: 'clerk'},
{firstName: 'Mary', lastName: 'Jenkins', age: 36, role: 'manager'}
];
Ví dụ
Mã thực hiện:
const arr = [
[
['firstName', 'Joe'],
['lastName', 'Blow'],
['age', 42],
['role', 'clerk'],
[
['firstName', 'Mary'],
['lastName', 'Jenkins'],
['age', 36],
['role', 'manager']
]
]
];
const convertToObject = (arr = []) => {
const empty = {};
const res = arr.map(el => {
const object = this;
el.forEach(attr => {
let name = attr[0], value = attr[1];
object[name] = value;
return object;
}, object);
return this;
}, empty);
return res;
}
console.log(convertToObject(arr));
Kết quả
Kết quả trong console:
[
{
firstName: 'Joe',
lastName: 'Blow',
age: 42,
role: 'clerk',
'firstName,Mary': [ 'lastName', 'Jenkins' ]
}
]