如何将具有多个属性的对象转换为数组

时间:2017-05-18 18:55:02

标签: javascript jquery angularjs arrays json

请尝试转换从我的Web API返回的此对象:

[
    {"a":65,"b":59,"c":80,"d":81,"e":56,"f":55,"g":40},
    {"a":28,"b":48,"c":40,"d":19,"e":86,"f":27,"g":90}
]

在AngularJS Controller中输入此格式的数组:

[
    [65, 59, 80, 81, 56, 55, 40],
    [28, 48, 40, 19, 86, 27, 90]
]

我进行了广泛的研究和研究。应用了多种方法使用:

  1. var arr = $.map(o, function(el) { return el; })
  2. var arr = Object.keys(o).map(function(k) { return o[k] });
  3. var obj = JSON.parse(json);
  4. Object.keys(obj).forEach(function (key) { arr[key] = obj[key] });
  5. 但是上述所有内容都没有,因为我从console.log获得的是:

      

    [object Object],[object Object]

2 个答案:

答案 0 :(得分:-1)

试试这种方式

[{"a":65,"b":59,"c":80,"d":81,"e":56,"f":55,"g":40}, 
{"a":28,"b":48,"c":40,"d":19,"e":86,"f":27,"g":90}
].map(function(n) { 
   return Object.keys(n).map(function(nn) { return n[nn] });
});

答案 1 :(得分:-1)

这适用于任何键/值对象数组。



function convert(data) {
  let res = [];
  for (var i = 0; i < data.length; i++) {
    let keys = Object.keys(data[i]);
    let temp = [];
    for (var j = 0; j < keys.length; j++) {
      temp.push(data[i][keys[j]]);
    }
    res.push(temp);
  }
  return res;
}

var json = [
    {"a":65,"b":59,"c":80,"d":81,"e":56,"f":55,"g":40},
    {"a":28,"b":48,"c":40,"d":19,"e":86,"f":27,"g":90}
];



console.log(convert(json));
&#13;
&#13;
&#13;

相关问题