是否可以转换
[[35, "Bill"], [20, "Nancy"], [27, "Joan"]]
to
{"Bill": 35, "Nancy": 20, "Joan": 27}
使用.map()
or .reduce()
方法?
我可以使用以下方法转换数组:
const arr = [[35, "Bill"], [20, "Nancy"], [27, "Joan"]];
let obj = {};
for (let item of arr) {
obj[item[1]] = item[0];
}
console.log(obj);
但我尝试使用map
or reduce
正在失败。有任何想法吗?
如果支持,您可以使用Object.fromEntries() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries转换数组[key, value]
与一个对象配对。在这种情况下,这些对是[value, key]
,所以我们需要首先将它们映射到一个数组[key, value]
pairs.
const arr = [[35, "Bill"], [20, "Nancy"], [27, "Joan"]];
const obj = Object.fromEntries(arr.map(([v, k]) => [k, v]));
console.log(obj);
Use Array.map() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map创建一个对象数组,其中每个对象包含一个键/值。将它们组合成一个对象传播 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax into Object.assign() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign:
const arr = [[35, "Bill"], [20, "Nancy"], [27, "Joan"]];
const obj = Object.assign(...arr.map(([v, k]) => ({ [k]: v })));
console.log(obj);
如果您需要将对象用作字典,更好的解决方案是将元组数组转换为Map https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map:
const arr = [[35, "Bill"], [20, "Nancy"], [27, "Joan"]];
const map = new Map(arr.map(([v, k]) => [k, v]));
console.log(map.get('Bill'));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)