当前位置: 代码迷 >> JavaScript >> JS-将对象转换为数组
  详细解决方案

JS-将对象转换为数组

热度:55   发布时间:2023-06-13 12:16:13.0

我有以下对象数组:

[{"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]
    ]);

尝试这个

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);

也许这就是您要寻找的:

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
);

运气!

  相关解决方案