我有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方法?
答案 0 :(得分:3)
您可以将a和b数组放在外部数组中,然后将该数组缩减为单个对象。
var o = [a,b].reduce(function(p, c) { p[c[0]] = c[1]; return p; }, {});
答案 1 :(得分:2)
您可以将Object.assign
与map()
一起使用并传播语法。
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#reduce
与Object.assign
和computed 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);