将对象数组转换为对象值数组

时间:2021-01-19 13:58:50

标签: jquery arrays json

我使用 createTable(20, 40) createTable(20, 41) createTable(2, 1) 获取一组数据,如下所示:

getJSON

我的控制台输出如下:

var url = 'http://localhost:5000/api/items';
$.getJSON(url, function(response) {
  var response2 = []
  console.log(response)
});

我需要将这些值转换成这种格式的数组:

[{"id": 1, "price": 20, "name": "test"}, {"id": 4, "price": 30, "name": "test2"}]

我尝试了以下代码,但结果不同:

[[1, 20, "test"], [4, 30, "test2"]]

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

要执行您需要的操作,您可以使用 Object.values 以数组的形式从对象中获取所有属性的值。从那里你可以使用 map() 来构建一个包含它们的新数组:

// AJAX response:
let response = [{"id": 1, "price": 20, "name": "test"}, {"id": 4, "price": 30, "name": "test2"}];

let  response2 = response.map(Object.values);
console.log(response2);

答案 1 :(得分:1)

如果您需要使用 array 来完成,这是另一种方式。

演示代码

var response = [{
  "id": 1,
  "price": 20,
  "name": "test"
}, {
  "id": 4,
  "price": 30,
  "name": "test2"
}]
var outerarray = [];
$.each(response, function(key, val) {
  innerarray = []
  innerarray.push(val.id, val.price, val.name) //push value
  outerarray.push(innerarray)
});
console.log(outerarray)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

相关问题