Ger*_*gen 1 javascript arrays object
我有这个数组["one","two","three"]想把它转换成这个{one:true, two:true, three:true}。基本上我正在做的是将数组项转换为对象的键并使它们成为布尔值。我试过使用传播运算符{... arr},结果是{0:'one',1:'two',2:'three'},有什么想法吗?
您可以使用.reduce():
var object = array.reduce((m, v) => (m[v] = true, m), {});
Run Code Online (Sandbox Code Playgroud)
回调函数也可以写成传统函数:
var object = array.reduce(function(m, v) {
m[v] = true;
return m;
}, {});
Run Code Online (Sandbox Code Playgroud)
该.reduce()函数将数组v中的每个值(在上面的示例代码中)与“累加器”值一起传递给回调。回调函数可以对累加器做任何它想做的事情,然后它应该返回它。的第二个参数.reduce()是累加器的初始值,在这种情况下是一个新的空对象。
您可以映射对象并将它们分配给单个对象。
var array = ["one", "two", "three"],
object = Object.assign(...array.map(k => ({ [k]: true })));
console.log(object);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1572 次 |
| 最近记录: |