gpt4 book ai didi

javascript - 将 JavaScript 数组转换为对象

转载 作者:行者123 更新时间:2023-11-28 18:10:11 24 4
gpt4 key购买 nike

我不确定我在这方面做错了什么。当我尝试运行代码时,它说这里有一个未定义:obj[array[i]array[j][0]] = obj[array[i]array[j][1]];

有人可以解释一下我做错了什么吗?我正在寻找生成一个看起来像

的对象返回
obj = {
firstName:'Joe'
}



var array = [
[
['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role', 'clerk']
],
[
['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role', 'manager']
]
]

function transformEmployeeData(array){
var obj = {};
for(var i = 0; i < array.length; i++){
for(var j = 0; j < array[i].length; j++){
obj[array[i]array[j][0]] = obj[array[i]array[j][1]];
}
}
return obj;
}
transformEmployeeData(array);

最佳答案

一种简单的方法是使用 map 创建对象数组,并使用 forEach 分配每个名称/值对。

   var array = [
[
['firstName', 'Joe'],
['lastName', 'Blow'],
['age', 42],
['role', 'clerk']
],
[
['firstName', 'Mary'],
['lastName', 'Jenkins'],
['age', 36],
['role', 'manager']
]
]

function transformEmployeeData(array){
return array.map(a =>{
var obj = {};
a.forEach(a => obj[a[0]] = a[1]);
return obj;
});
}
var results = transformEmployeeData(array);
console.log(results[0]);
console.log(results[1]);

或更紧凑的形式

function transformEmployeeData(arr){
var obj;
return arr.map(a => (a.forEach((a, i) => (obj = !i ? {} : obj, obj[a[0]] = a[1])), obj));
}

关于javascript - 将 JavaScript 数组转换为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41795007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com