如何将 JavaScript 中嵌套数组对转换为数组中的对象?
假设我们有一个这样的数组 −
const arr = [ [ ['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role', 'clerk'], [ ['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role', 'manager'] ] ] ];
我们要求写一个接受此类数组的 JavaScript 函数。此函数应基于此数组数组构建一个对象数组。
输出数组应为每个唯一用户及其他相关详细信息包含一个对象。
因此,该数组的输出应如下所示 −
const output = [ {firstName: 'Joe', lastName: 'Blow', age: 42, role: 'clerk'}, {firstName: 'Mary', lastName: 'Jenkins', age: 36, role: 'manager'} ];
示例
代码如下 −
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));
输出
控制台中输出为 −
[ { firstName: 'Joe', lastName: 'Blow', age: 42, role: 'clerk', 'firstName,Mary': [ 'lastName', 'Jenkins' ] } ]
广告