多重数组转换对象?

arr = [ {1:"a"},{2:"b"}]
大概就是上边这种数组,怎么转换成下边这种对象。
obj = {1:"a",2:"b"}

向后台传参数的话,是不是下边这种更合适一些?

阅读 8k
4 个回答
var obj = {};
for (var i = 0; i < arr.length; i++) {
    for (var k in arr[i]) {
        obj[k] = arr[i][k];
    }
}
var arr = [{1:'a'},{2:'b'}];
var obj = eval('('+(JSON.stringify(arr[0])+JSON.stringify(arr[1])).replace(/}{/,',')+')');
console.log(obj);
//Object {1: "a", 2: "b"}
var arr = [ {1:"a"},{2:"b"}];
var obj = {};

//es2015
arr.forEach(function(v){
  Object.assign(obj, v);
});

console.log(obj);
var arr = [ {1:"a"},{2:"b"}];
var obj = {};

//jQuery version
jQuery.each(arr,function(k, v){
  jQuery.extend(obj, v);
});

console.log(obj);

@代码宇宙 的答案能够完美实现。
但你的数据结构或许不是最好的选择,纯数字连续的属性值,应该直接做成数组,即['a', 'b']这种形式。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题