在Javascript中将2个元素列表转换为dict

时间:2017-08-11 12:25:29

标签: javascript jquery list

我有2个元素列表,就像这样,

a = ['first_name', 'user']
b = ['last_name', 'abcd']

我想把它转换成,

{
  'first_name' : 'user',
  'last_name' : 'abcd'
}

这就是我的尝试:

a = ['first_name', 'user']
b = ['last_name', 'abcd']
new_dict = {}
new_dict[a[0]] = a[1]
new_dict[b[0]] = b[1]
console.log(new_dict)

是否有比这更简单/原生的JS方法?

3 个答案:

答案 0 :(得分:3)

您可以将a和b数组放在外部数组中,然后将该数组缩减为单个对象。

var o = [a,b].reduce(function(p, c) { p[c[0]] = c[1]; return p; }, {});

答案 1 :(得分:2)

您可以将Object.assignmap()一起使用并传播语法。



var a = ['first_name', 'user'], b = ['last_name', 'abcd']

var obj = Object.assign({}, ...[a, b].map(([k, v]) => ({[k]: v})))
console.log(obj)




答案 2 :(得分:2)

您可以将Array#reduceObject.assigncomputed property names与之前的destructuring assignment一起使用。

var a = ['first_name', 'user'],
    b = ['last_name', 'abcd'],
    object = [a, b].reduce((r, [k, v]) => Object.assign(r, { [k]: v }), {});
    
console.log(object);