Lodash将数组转换为对象

11

将数组转换为对象,输出应与键和值相同。

示例数组:(我的输入结构)

var a = [1,2,3,4,5];

我需要这种输出结构:

{ 
  '1': 1,
  '2': 2,
  '3': 3,
  '4': 4,
  '5': 5
}

@Li357 嗯,a[0] = 1,所以索引不对应于值。 - VLAZ
1
这个结构似乎并不真正有用。虽然有效,但这个问题可能是一个XY问题 - Denys Séguret
5个回答

11
使用 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>


10
你不需要使用库,只需使用标准的reduce函数:reduce
let obj = [1,2,3,4,5].reduce((o,k)=>(o[k]=k,o), {})

5
我在这里使用reduce。

const listToObject = list => list.reduce((obj, key) => {
          return {
            ...obj,
            [key]:key
          }
        }, {})
        
console.log(listToObject([1,2,3,4,5]))


4

1
你可以将具有相同键和值的对象映射到一个对象中。

var array = [1, 2, 3, 4, 5],
    result = Object.assign({}, ...array.map(k => ({ [k]: k })));

console.log(result);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接