给定数组:
var arr = [ "one", "two", "three" ];
请问将其转换为最简洁的方式是什么:
{ "one": true, "two": true, "three": true }
我尝试过以下方法,但我想应该有更好的解决办法。
_.zipObject(arr || {}, _.fill([], true, 0, arr.length))
给定数组:
var arr = [ "one", "two", "three" ];
请问将其转换为最简洁的方式是什么:
{ "one": true, "two": true, "three": true }
_.zipObject(arr || {}, _.fill([], true, 0, arr.length))
var obj = arr.reduce(function(o, v) { return o[v] = true, o; }, {});
return
语句中使用逗号运算符。有趣的问题。https://dev59.com/O2kv5IYBdhLWcg3w4kt2 - aziumvar array = ["one", "two", "three"];
var myObject = new Object();
for (i = 0; i < array.length; i++) {
myObject[array[i]] = true;
}
console.log(myObject);
new Object()
,而是使用对象字面量{}
。 - Edwin Reynoso使用 lodash
库:
const arr = ['one', 'two', 'three'];
_.mapValues(_.keyBy(arr), () => true);
一个简单的方法可以像这样:
function toObject(arr) {
var rv = {};
for (var i = 0; i < arr.length; ++i)
rv[i] = true;
return rv;
}