将每个键和值转换为数组

时间:2017-04-10 09:31:43

标签: javascript arrays

如何隐藏或将每个键和值添加到单独的数组中。

立即

var arr = {
  "3/10/2017": 52,
  "3/11/2017": 58,
  "3/12/2017": 70,
  "3/13/2017": 76
}

结果应为

var arr = [
  ["3/10/2017", 52],
  ["3/11/2017", 58],
  ["3/12/2017", 70],
  ["3/13/2017", 76]
]

谢谢

4 个答案:

答案 0 :(得分:4)

["3/13/2017": 76]实际上是无效数组,但您可以将:替换为例如逗号,或者只是将其作为对象推送到每个数组。



var arr = {
  "3/10/2017": 52,
  "3/11/2017": 58,
  "3/12/2017": 70,
  "3/13/2017": 76
},
res = Object.keys(arr).map(v => new Array(v, arr[v])),
res2 = Object.keys(arr).map(v => new Array({[v]: arr[v]}));

console.log(JSON.stringify(res, 2, null));
console.log(JSON.stringify(res2, 2, null));




答案 1 :(得分:3)

使用Object.entries



var arr = {
  "3/10/2017": 52,
  "3/11/2017": 58,
  "3/12/2017": 70,
  "3/13/2017": 76
};

arr = Object.entries(arr);
console.log(JSON.stringify(arr));




答案 2 :(得分:2)

您应该将map方法与Object.keys()结合使用。map方法接受callback函数,该函数应用于数组中的每个项目。

var arr = {
  "3/10/2017": 52,
  "3/11/2017": 58,
  "3/12/2017": 70,
  "3/13/2017": 76
};
console.log(Object.keys(arr).map(function(item){
    return [item,arr[item]];
}));

答案 3 :(得分:0)

var arr = {
  "3/10/2017": 52,
  "3/11/2017": 58,
  "3/12/2017": 70,
  "3/13/2017": 76
}
let objArr = [];
for(var key in arr){
  objArr.push([key, arr[key]]);
}
console.log(objArr);