我有一个数组,比方说 ["a","b","c"]
,我想把它变成一个对象,它以数组值作为键和一个默认值我可以设置。因此,如果默认值为 true
,我希望我的输出为 {a:true, b:true, c:true}
。
是否有下面代码的更简洁版本来实现此目的?
var myObject = {};
["a","b","c"].forEach(x => myObject[x] = true);
我觉得有一种简洁的 Lodash 或 ES6 方法可以做到这一点,但我想不出。
最佳答案
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/