Lodash将数组转换为对象

时间:2019-05-23 12:59:32

标签: javascript lodash

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

样本数组:(我的输入结构)

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

我需要这种输出结构:

{ 
  '1': 1,
  '2': 2,
  '3': 3,
  '4': 4,
  '5': 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]))
)