Javascript:什么是将数组转换为对象的最佳方法?

时间:2017-01-24 11:24:47

标签: javascript arrays object

转换的最佳方式是什么:

a = ['USD', 'EUR', 'INR']

a = {'USD': 0, 'EUR': 0, 'INR': 0};

*将数组元素作为对象的键操作,其值最初为0。

4 个答案:

答案 0 :(得分:10)

使用Array#reduce方法缩减为单个对象。



a = ['USD', 'EUR', 'INR'];

console.log(
  a.reduce(function(obj, v) {
    obj[v] = 0;
    return obj;
  }, {})
)




甚至简单的循环也没问题。



var a = ['USD', 'EUR', 'INR'];
var res = {};

for (var i = 0; i < a.length; i++)
  res[a[i]] = 0;

console.log(res);
&#13;
&#13;
&#13;

答案 1 :(得分:6)

您可以将Object.assignArray#mapspread syntax ...

一起使用

&#13;
&#13;
var array = ['USD', 'EUR', 'INR'],
    object = Object.assign(...array.map(k => ({ [k]: 0 })));

console.log(object);
&#13;
&#13;
&#13;

答案 2 :(得分:2)

您可以使用Array.mapObject.assign

&#13;
&#13;
var a = ['USD', 'EUR', 'INR']
var result = Object.assign.apply(null, a.map(x =>({[x]:0})));
console.log(result)
&#13;
&#13;
&#13;

答案 3 :(得分:2)

使用Map构造函数:

new Map(a.map(x => [x, 0]))