我有一个这样的数组:
var arrayTemp = [
{"0":["Z",59]},
{"1":["D",53]},
{"2":["6",26]},
{"3":["3",19]},
{"4":["Y",10]},
{"5":["H",7]},
{"6":["G",5]},
{"7":["2",5]}
];
我需要一个类似于下面的输出,
var arrayTemp = [
{"Z":59},
{"D":53},
{"6":26},
{"3":19},
{"Y":10},
{"H":7},
{"G":5},
{"2":5}
];
我如何实现这一目标?我希望在json,下划线或JavaScript的帮助下实现这一目标。
答案 0 :(得分:2)
使用Array.prototype.map(),您可以迭代原始数组的每个元素并创建所需的对象,并将它们作为新数组返回到新数组中。
var newArray = arrayTemp.map(function(e, index) {
var x = {};
x[e[index][0]] = e[index][1];
return x;
})
DEMO - 使用Array.prototype.map()
创建新数组
答案 1 :(得分:0)
这样的事情:
var newArray = arrayTemp.map(function(e) {
var index = Object.keys(e).shift(),
innerElement = e[index],
ret = {};
ret[innerElement[0]] = innerElement[1];
return ret;
})
JsFiddle进行测试。
答案 2 :(得分:0)
使用下划线:
var newArr = _.map(arrayTemp, function(item){
for (var i in item){
var o = {};
o[item[i][0]] = item[i][1];
return o;
}
});
尽管@François_Wahl的解决方案在使用原生Array.prototype.map()方面更受尊重。