gpt4 book ai didi

javascript - 在 javascript 中使用 map 或 reduce 将二维数组转换为对象

转载 作者:行者123 更新时间:2023-11-30 07:07:12 30 4
gpt4 key购买 nike

是否可以转换

[[35, “比尔”], [20, “南希”], [27, “琼”]]

{“比尔”:35,“南希”:20,“琼”:27}

使用 .map().reduce() 方法?

我可以使用以下方法转换数组:

const arr = [[35, "Bill"], [20, "Nancy"], [27, "Joan"]];

let obj = {};

for (let item of arr) {
obj[item[1]] = item[0];
}

console.log(obj);

但是我尝试使用 mapreduce 来执行此操作失败了。有什么想法吗?

最佳答案

如果支持,您可以使用Object.fromEntries()[key, value] 对数组转换为对象。在这种情况下,对是 [value, key],因此我们需要先将它们映射到 [key, value] 对的数组。

const arr = [[35, "Bill"], [20, "Nancy"], [27, "Joan"]];

const obj = Object.fromEntries(arr.map(([v, k]) => [k, v]));

console.log(obj);

使用Array.map()创建一个对象数组,其中每个对象包含一个键/值。通过 spreading 将它们组合成一个对象进入Object.assign() :

const arr = [[35, "Bill"], [20, "Nancy"], [27, "Joan"]];

const obj = Object.assign(...arr.map(([v, k]) => ({ [k]: v })));

console.log(obj);

如果您需要将该对象用作字典,更好的解决方案是将元组数组转换为 Map。 :

const arr = [[35, "Bill"], [20, "Nancy"], [27, "Joan"]];

const map = new Map(arr.map(([v, k]) => [k, v]));

console.log(map.get('Bill'));

关于javascript - 在 javascript 中使用 map 或 reduce 将二维数组转换为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52655148/

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