gpt4 book ai didi

javascript - 如何将嵌套数组转换为对象

转载 作者:行者123 更新时间:2023-11-28 17:36:13 25 4
gpt4 key购买 nike

我想从仅 2 层深的嵌套数组创建一个对象。我想出的函数返回

[{ key1: 'value1', key2: 'value2' }]

而不是

[{ key1: 'value1' }, {key2: 'value2' }]

我还尝试将 if 语句替换为 obj[elem[0]] = elem[1];但得到相同的结果。

如何为每个嵌套数组创建单独的对象?

var array = [["key1", "value1"], ["key2", "value2"]]

function nestedArrToObj(array){

let obj = {};

for (let i=0; i < array.length;i++) {
let elem = array[i];

if (!(obj[elem[0]])) {
obj[elem[0]] = elem[1]
}
}

return [obj];
}

最佳答案

使用函数map

let array = [["key1", "value1"], ["key2", "value2"]];
let result = array.map(([key, value]) => ({[key]: value}));

console.log(result)
.as-console-wrapper { max-height: 100% !important; top: 0; }

使用函数reduce

let array = [["key1", "value1"], ["key2", "value2"]];
let result = array.reduce((a, c) => {
let [key, value] = c;
return [...a, {[key]: value}];
}, []);

console.log(result)
.as-console-wrapper { max-height: 100% !important; top: 0; }

跨浏览器和后端技术兼容的方法:

var array = [["key1", "value1"], ["key2", "value2"]];

var result = [];
for(var a of array) {
var value = a.pop();
var key = a.pop();

var object = {};
object[key] = value;

result.push(object);
}

console.log(result)
.as-console-wrapper { max-height: 100% !important; top: 0; }

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

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