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

如何通过循环从data.json生成指定格式的二维数组?

嘿,这问题不难!你要把data.json里的商品数据转换成指定格式的二维数组,我给你两种常用的实现方式,挑你顺手的来~

解决方案

核心逻辑就是遍历prodotti数组里的每个对象,把每个对象的对应字段按顺序提取出来组成子数组,最后汇总成大数组。注意原数据里的quantita是字符串类型,而你要的结果里是数字,所以需要做个类型转换。

方法一:用Array.map()(简洁首选)

map方法天生就是用来把数组里的每个元素转换成新格式的,一行搞定转换逻辑:

// 假设你已经把data.json的内容解析成了JavaScript对象,存在data变量中
const arr = data.prodotti.map(item => [
  item.articolo,   // 第一个元素:商品编码
  item.descrizione,// 第二个元素:描述
  item.prezzo,     // 第三个元素:单价(原数据已是数字,直接用)
  parseInt(item.quantita, 10), // 第四个元素:数量(转成数字)
  item.totale      // 第五个元素:总价(原数据已是数字)
]);

console.log(arr);
// 输出结果完全符合你的需求:
// [["CR7012","",100,1,100],["CR7012","bla bla bla",100,5,500],["CR7012","bla bla bla",100,1,100]]

方法二:传统for循环

如果你习惯用传统的循环写法,也可以这样实现:

// 假设data是已解析的JSON对象
const arr = [];
for (let i = 0; i < data.prodotti.length; i++) {
  const currentItem = data.prodotti[i];
  // 组装子数组
  const subArray = [
    currentItem.articolo,
    currentItem.descrizione,
    currentItem.prezzo,
    parseInt(currentItem.quantita, 10),
    currentItem.totale
  ];
  arr.push(subArray);
}

console.log(arr);
// 同样得到目标二维数组

读取data.json的完整示例

如果你还需要读取本地的data.json文件,这里分两种场景给你完整代码:

浏览器环境(前端)

用fetch API异步读取文件:

fetch('data.json')
  .then(response => {
    if (!response.ok) throw new Error('文件读取失败');
    return response.json();
  })
  .then(data => {
    // 这里执行转换逻辑
    const arr = data.prodotti.map(item => [
      item.articolo,
      item.descrizione,
      item.prezzo,
      parseInt(item.quantita, 10),
      item.totale
    ]);
    // 拿到arr后可以做后续操作,比如渲染到页面
    console.log(arr);
  })
  .catch(error => console.error('出错了:', error));

Node.js环境(后端/命令行)

用内置的fs模块读取文件:

const fs = require('fs');
const path = require('path');

// 读取文件
fs.readFile(path.join(__dirname, 'data.json'), 'utf8', (err, rawData) => {
  if (err) {
    console.error('读取文件出错:', err);
    return;
  }
  // 解析JSON字符串为对象
  const data = JSON.parse(rawData);
  // 执行转换
  const arr = data.prodotti.map(item => [
    item.articolo,
    item.descrizione,
    item.prezzo,
    parseInt(item.quantita, 10),
    item.totale
  ]);
  console.log(arr);
});

内容的提问来源于stack exchange,提问作者Raffaele Garofalo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:08:12