将数组转换为对象键

时间:2019-02-20 15:06:12

标签: javascript

将数组转换为以这些数组值作为键的对象的最佳方法是什么,空字符串用作新对象的值。

['a','b','c']

收件人:

{
  a: '',
  b: '',
  c: ''
}

5 个答案:

答案 0 :(得分:4)

尝试Array#Reduce

var arr = ['a','b','c'];
arr =  arr.reduce((a,b)=> (a[b]='',a),{});
console.log(arr)

答案 1 :(得分:1)

您可以使用数组归约函数并在累加器中传递一个空对象。在此累加器中,添加由curr

表示的密钥

let k = ['a', 'b', 'c']

let obj = k.reduce(function(acc, curr) {
  acc[curr] = '';
  return acc;
}, {});
console.log(obj)

答案 2 :(得分:1)

您可以使用Object.assign属性来组合使用map函数创建的对象,请注意,如果数组元素的值不唯一,则后者将覆盖先前的值。

const array = Object.assign({},...["a","b","c"].map(key => ({[key]: ""})));
console.log(array);

答案 3 :(得分:0)

您可以使用Array.prototype.reduce()Computed property names

let arr = ['a','b','c'];
let obj = arr.reduce((ac,a) => ({...ac,[a]:''}),{});
console.log(obj);

答案 4 :(得分:0)

var target = {}; ['a','b','c'].forEach(key => target[key] = "");