问题描述
我有以下对象数组:
[{"CZ-PR":"1"},{"CZ-JC":"0"},{"CZ-JM":"0"},{"CZ-KA":"0"},{"CZ-VY":"0"},{"CZ-KR":"0"},{"CZ-LI":"0"},{"CZ-MO":"0"},{"CZ-OL":"0"},{"CZ-PA":"0"},{"CZ-PL":"0"},{"CZ-ST":"0"},{"CZ-US":"0"},{"CZ-ZL":"0"}]
我需要像这样将其转换为数组数组(需要将其传递给Google Maps Geocharts构造函数):
[["CZ-PR","1"],["CZ-JC","0"]]
我试过了:
var arr = [];
for (var k in obj) arr.push([+k, obj[k]]);
哪给我每个字母的数组...如何将我的初始对象转换为所需的对象?
编辑:期望从Google geocharts的格式是这样的:
var data = google.visualization.arrayToDataTable([
['Country', 'Popularity'],
['Germany', 200],
['United States', 300],
['Brazil', 400],
['Canada', 500],
['France', 600],
['RU', 700]
]);
1楼
尝试这个
var data = [{"CZ-PR":"1"},{"CZ-JC":"0"},{"CZ-JM":"0"},{"CZ-KA":"0"},{"CZ-VY":"0"},{"CZ-KR":"0"},{"CZ-LI":"0"},{"CZ-MO":"0"},{"CZ-OL":"0"},{"CZ-PA":"0"},{"CZ-PL":"0"},{"CZ-ST":"0"},{"CZ-US":"0"},{"CZ-ZL":"0"}];
var result = [];
result = data.map(function (el) {
var key = Object.keys(el).pop()
return [
key, +el[key]
]
});
console.log(result);
2楼
也许这就是您要寻找的:
var objectArray = [{"CZ-PR":"1"},{"CZ-JC":"0"},{"CZ-JM":"0"},{"CZ-KA":"0"},{"CZ-VY":"0"},{"CZ-KR":"0"},{"CZ-LI":"0"},{"CZ-MO":"0"},{"CZ-OL":"0"},{"CZ-PA":"0"},{"CZ-PL":"0"},{"CZ-ST":"0"},{"CZ-US":"0"},{"CZ-ZL":"0"}];
// build data array
var dataArray = objectArray.map(function(e) {
var key = Object.keys(e).pop();
return [key,e[key]];
});
// add the headers!
dataArray.unshift(['Country', 'Popularity']);
// pass data to google
var data = google.visualization.arrayToDataTable(
dataArray
);
运气!