You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将getJSON获取的对象数组转换为对象值组成的二维数组?

解决方法:将对象数组转换为二维数组

嘿,我来帮你搞定这个问题!你现在的核心问题是直接把整个对象push到数组里了,所以得到的还是对象数组,而非你想要的二维数组。我们需要把每个对象的属性值单独提取出来,组成新数组再添加进去。

方法一:用Object.values()快速提取值

这个方法会自动提取对象的所有属性值并组成数组,适合不需要严格控制属性顺序的场景:

var url = 'http://localhost:5000/api/items';
$.getJSON(url, function(response) {
  var response2 = [];
  $.each(response, function(key, val) {
    // 提取当前对象的所有属性值,生成新数组后push进response2
    response2.push(Object.values(val));
  });
  console.log(response2); // 输出 [[1, 20, "test"], [4, 30, "test2"]]
});

方法二:手动指定属性顺序(更稳妥)

如果你需要严格保证数组元素顺序是id→price→name,可以手动提取每个属性的值,这样能避免对象属性顺序意外变化的问题:

var url = 'http://localhost:5000/api/items';
$.getJSON(url, function(response) {
  var response2 = [];
  $.each(response, function(key, val) {
    // 按照需求顺序提取属性值,组装成新数组
    response2.push([val.id, val.price, val.name]);
  });
  console.log(response2); // 输出 [[1, 20, "test"], [4, 30, "test2"]]
});

为什么之前的代码不符合预期?

你之前写的response2.push(val),是把整个对象(比如{"id": 1, "price": 20, "name": "test"})直接添加到了response2里,所以最终结果还是一组对象,而非二维数组。我们要做的是把对象里的属性值提取出来,包装成新数组再push进去。

内容的提问来源于stack exchange,提问作者stefano manzi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 05:02:46