Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将嵌套数组对转换为数组中的对象_Javascript_Arrays_Object - Fatal编程技术网

Javascript 如何将嵌套数组对转换为数组中的对象

Javascript 如何将嵌套数组对转换为数组中的对象,javascript,arrays,object,Javascript,Arrays,Object,我的任务是将以下数组转换为对象对数组: var arr = [ [ ['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role', 'clerk'], [ ['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role', 'manager'] ] ] ]

我的任务是将以下数组转换为对象对数组:

var arr = [
  [
    ['firstName', 'Joe'],
    ['lastName', 'Blow'],
    ['age', 42],
    ['role', 'clerk'],
    [
      ['firstName', 'Mary'],
      ['lastName', 'Jenkins'],
      ['age', 36],
      ['role', 'manager']
    ]
  ]
]
我需要将
arr
转换为如下所示的对象数组:

[
 {firstName: 'Joe', lastName: 'Blow', age: 42, role: 'clerk'},
 {firstName: 'Mary', lastName: 'Jenkins', age: 36, role: 'manager'}
]

如果格式化代码,首先会看到末尾缺少一个右大括号']'。你的结构是这样的

var arr = [
    [
        ['firstName', 'Joe'],
        ['lastName', 'Blow'],
        ['age', 42],
        ['role', 'clerk'],
        [
            ['firstName', 'Mary'],
            ['lastName', 'Jenkins'],
            ['age', 36],
            ['role', 'manager']
        ]
    ]
]
var arr = [
    [
        ['firstName', 'Joe'],
        ['lastName', 'Blow'],
        ['age', 42],
        ['role', 'clerk']
    ],
    [
        ['firstName', 'Mary'],
        ['lastName', 'Jenkins'],
        ['age', 36],
        ['role', 'manager']
    ]
];
var arr = [
    {
        'firstName': 'Joe',
        'lastName': 'Blow',
        'age': 42,
        'role': 'clerk'
    },
    {
        'firstName': 'Mary',
        'lastName': 'Jenkins',
        'age': 36,
        'role': 'manager'
    }
];
我想你想做这样的事

var arr = [
    [
        ['firstName', 'Joe'],
        ['lastName', 'Blow'],
        ['age', 42],
        ['role', 'clerk'],
        [
            ['firstName', 'Mary'],
            ['lastName', 'Jenkins'],
            ['age', 36],
            ['role', 'manager']
        ]
    ]
]
var arr = [
    [
        ['firstName', 'Joe'],
        ['lastName', 'Blow'],
        ['age', 42],
        ['role', 'clerk']
    ],
    [
        ['firstName', 'Mary'],
        ['lastName', 'Jenkins'],
        ['age', 36],
        ['role', 'manager']
    ]
];
var arr = [
    {
        'firstName': 'Joe',
        'lastName': 'Blow',
        'age': 42,
        'role': 'clerk'
    },
    {
        'firstName': 'Mary',
        'lastName': 'Jenkins',
        'age': 36,
        'role': 'manager'
    }
];
但我建议你这样做

var arr = [
    [
        ['firstName', 'Joe'],
        ['lastName', 'Blow'],
        ['age', 42],
        ['role', 'clerk'],
        [
            ['firstName', 'Mary'],
            ['lastName', 'Jenkins'],
            ['age', 36],
            ['role', 'manager']
        ]
    ]
]
var arr = [
    [
        ['firstName', 'Joe'],
        ['lastName', 'Blow'],
        ['age', 42],
        ['role', 'clerk']
    ],
    [
        ['firstName', 'Mary'],
        ['lastName', 'Jenkins'],
        ['age', 36],
        ['role', 'manager']
    ]
];
var arr = [
    {
        'firstName': 'Joe',
        'lastName': 'Blow',
        'age': 42,
        'role': 'clerk'
    },
    {
        'firstName': 'Mary',
        'lastName': 'Jenkins',
        'age': 36,
        'role': 'manager'
    }
];

你可以这样转换它-

var arr = [
            {'firstName':'Joe','lastName':'Blow','age':42,'role':'clert‌​'},
            {'firstName':'Mar‌​y','lastName':'Jenki‌​ns','age':36,'role':‌​'manager'}
          ]

对象数组的示例

var arr = [
    {
       'firstName' : 'Joe',
       'lastName' : 'Blow',
       'age' : 42,
       'role' : 'clerk'
    },
    {
       'firstName' : 'Mary',
       'lastName' : 'Jenkins',
       'age' : 36,
       'role' : 'manager'
    } 
];
编程解决方案(也可从以下网址获得):


可以对嵌套数组使用迭代和递归方法

var数组=[[['firstName','Joe'],['lastName','Blow'],['age',42],'role','clerk'],[['firstName','Mary'],['lastName','Jenkins'],['age',36],'role','manager']],
结果=[];
数组[0]。forEach(函数iter(a,i){
i | | result.push({});
if(i<4){
结果[result.length-1][a[0]]=a[1];
回来
}
国际热核实验堆(iter);
});
控制台日志(结果)
。作为控制台包装{最大高度:100%!重要;顶部:0;}
  • 使用map函数选择每个“person”数组
  • 使用reduce函数将每个“person”数组转换为一个对象
  • map函数还将返回一个新的对象数组
  • 原始数组将不会被更改

请说出你所做的努力和想要的输出输出格式是什么?你想要这样-var arr=[{'firstName':'Joe','lastName':'Blow','age':42,'role':'clert'},{'firstName':'Mary','lastName':'Jenkins','age':36,'role':'manager'}提到你尝试过的,想要的输出是什么。另外,格式化问题,添加代码块。arr缺少一个“]”请投反对票删除评论。所以我可以得到我不知道的嵌入片段的地方,谢谢你的回复。然而,我认为您的解决方案受到属性数(四)的限制,但这缺乏弹性,我的意思是,如果I==2,那么它就是一个名称/值元组,看起来前四个元素应该是对象的一部分。这就是我能想到的。它确实有效,但我不认为它是最有效的解决方案。如果你提供比上面更多的数据,我可以优化提案。