如何将对象转换为多个键值数组

时间:2017-03-09 19:48:04

标签: javascript jquery arrays object

我有变量和onclick函数设置,但我无法弄清楚如何将此对象转换为数组中的数组。我正试图改变这个

{"Wins":30,"Losses:"32}

进入这个:

[["Wins:",30]["Losses:",32]]

所以我可以将它附加到data.addRows:

      var data = new google.visualization.DataTable();
        data.addColumn('string', 'Topping');
        data.addColumn('number', 'Total: ');
        data.addRows([
          ['String', number],
          ['String', number],
        ]);

5 个答案:

答案 0 :(得分:1)

我建议你使用以下方法:

var obj = {"Wins": 30, "Losses": 32};
    console.log(Object.keys(obj).map(v => [v + ':', obj[v]]));

答案 1 :(得分:1)

在某些浏览器的最新版本中,您可以使用新的Object.entries执行此操作:

(感谢georg在上述评论中首先提到这一点。)

var data = {
  "Wins": 30,
  "Losses": 32
}

console.log(
  Object.entries(data) //=> [ ['Wins', 30], ['Losses', 32] ]
)

但是,您也可以使用支持率更高的Object.keysArray#map来创建自己的entries函数:

var data = {
  "Wins": 30,
  "Losses": 32
}

function entries (object) {
  return Object.keys(data).map(function (k) { return [k, this[k]] }, data)
}

console.log(
  entries(data) //=> [ ['Wins', 30], ['Losses', 32] ]
)

答案 2 :(得分:0)

Object.entries()很棒,但没有IE支持。由于您使用的是jQuery,因此可以选择jQuery.map



var myObj = {"Wins": 30,"Losses": 32};
var array = $.map(myObj, function(value, index) {
    return [[index, value]];
});
console.log(array);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

纯javascript

var myObject={"Wins":30,"Losses":32};
var resultArray=[];
for(var key in myObject) {
    if(myObject.hasOwnProperty(key)) {
        resultArray.push([key,myObject[key]])
    }
}
console.log(resultArray)
  

结果[[“胜利”,30],[“损失”,32]]

答案 4 :(得分:0)

以下代码将每个对存储在一个数组中:

var obj = { 'Wins': 30, 'Losses': 32 };
var keyvalues = [];
for (var prop in obj) {
    keyvalues.push([prop, obj[prop]]);
}