将数组转换为对象,输出应与键和值相同。
样本数组:(我的输入结构)
var a = [1,2,3,4,5];
我需要这种输出结构:
{
'1': 1,
'2': 2,
'3': 3,
'4': 4,
'5': 5
}
答案 0 :(得分:3)
您不需要一个库,只需一个标准的reduce:
let obj = [1,2,3,4,5].reduce((o,k)=>(o[k]=k,o), {})
答案 1 :(得分:3)
使用lodash的_.keyBy()
:
const result = _.keyBy([1, 2, 3, 4, 5]);
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>
答案 2 :(得分:1)
您可以使用相同的键和值映射对象,然后将所有对象分配给一个对象。
var array = [1, 2, 3, 4, 5],
result = Object.assign({}, ...array.map(k => ({ [k]: k })));
console.log(result);
答案 3 :(得分:1)
我在这里使用reduce
const listToObject = list => list.reduce((obj, key) => {
return {
...obj,
[key]:key
}
}, {})
console.log(listToObject([1,2,3,4,5]))
答案 4 :(得分:1)
您可以将Object.fromEntries()
与Array.map()
结合使用:
var a = [1,2,3,4,5];
console.log(
Object.fromEntries(a.map(v => [v, v]))
)