我有两个元素列表,如下所示,
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方法呢?
发布于 2017-08-11 12:30:21
您可以将a和b数组放在外部数组中,然后将该数组缩减为单个对象。
var o = [a,b].reduce(function(p, c) { p[c[0]] = c[1]; return p; }, {});
发布于 2017-08-11 12:28:01
您可以将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)
发布于 2017-08-11 12:42:23
您可以将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);
https://stackoverflow.com/questions/45635199
复制