javascript – 获取数组并使用翻转的索引/值创建对象

在lodash中是否有更简单的方法来实现以下目标,

var o = _.reduce([2, 3, 7], function(acc, v, i) {
    acc[v] = i || "0";
    return acc;
}, {});

结果,

Object {2: "0", 3: 1, 7: 2}

解决方法:

既然你说你想用lodash

_.fromPairs(_.map(array, (elt, i) => [elt, String(i)]))

这可以通过将数组转换为键/值对数组来实现,然后您可以使用_.fromPairs来变成对象.

我不是真的推荐这个,而是使用ES6的单线程:

Object.assign({}, ...array.map((e, i) => ({[e]: String(i)})))

这可以通过创建一堆小的一个属性对象,然后将它们传播到Object.assign的参数列表上,它将它们粘合在一起成为一个对象.

上一篇:在javascript中将数组与对象键和组进行比较


下一篇:javascript – 在Lodash中从字符串数组转换为hashmap