在Javascript中将数组转换为对象

时间:2018-04-12 12:39:52

标签: javascript arrays object

我想知道将Js中的数组转换为object的最佳方法。

这是我想要做的样本。 输入=> [' abc',' def']; 输出=> {abc:true,def:true}

我使用下面的代码完成了它。但只是想知道是否

**function toObject(strings) {
    var rv = {}
    strings.forEach(string => {
        rv[string] = true
    })
  return rv
}**

此功能用于此目的。但是,任何专家都能以最好,最有效的方式开展工作。

2 个答案:

答案 0 :(得分:2)

不确定最好和最有效的方式是什么意思,因为根据我的,这是一个不那么精简的版本

var output = strings.reduce( (a,c) => (a[c]=true, a), {})

<强>演示

var strings = ['abc', 'def'];
var output = strings.reduce( (a,c) => (a[c]=true, a), {});
console.log(output);

答案 1 :(得分:1)

您可以映射单个对象并将其分配给同一个对象。

var array = ['abc', 'def'],
    object = Object.assign(...array.map(key => ({ [key]: true })));
    
console.log(object);