javascript - 将数组转换为具有默认值的对象的更简洁的方法? (Lodash 可用)

标签 javascript arrays

我有一个数组,比方说 ["a","b","c"],我想把它变成一个对象,它以数组值作为键和一个默认值我可以设置。因此,如果默认值为 true,我希望我的输出为 {a:true, b:true, c:true}

是否有下面代码的更简洁版本来实现此目的?

var myObject = {};
["a","b","c"].forEach(x => myObject[x] = true);

我觉得有一种简洁的 Lodash 或 ES6 方法可以做到这一点,但我想不出。

最佳答案

标准 Object.assignArray#map

var array = ["a", "b", "c"],
    object = Object.assign(...array.map(k => ({ [k]: true })));
    
console.log(object);

或者使用 lodash 和 _.set

var array = ["a", "b", "c"],
    object = array.reduce((o, k) => _.set(o, k, true), {});

console.log(object);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>

关于javascript - 将数组转换为具有默认值的对象的更简洁的方法? (Lodash 可用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49305307/

相关文章:

javascript - 如何最小化登陆页面的加载时间

javascript - 从 Firefox 扩展在页面的窗口对象中设置一个对象?

c++ - 将函数从 main 移动到原型(prototype),现在它不起作用

有很多 [char array ] 问题的 C 结构

python - 比在 python 中组合多个 cv2 图像(numpy 数组)更快的方法?

javascript - 向数组中添加一个新对象

python - 如何在 Python 列表中找到第 1、2、3 个最高值

javascript - 使用 jQuery 根据其 data-* 属性显示/隐藏内容

javascript - 饼图不使用外部 json 文件绘制 - extjs

javascript - 如何播放页面上的每个音频元素(HTML、JQuery、Javascript)