javascript - 解析 JSON 并形成自定义数组

标签 javascript html json

我拥有的,

{
    "rowId": "1",
    "product_name": [
        "Product 1",
        "Product 2",
        "Product 3",
        "Product 4",
        "Product 5"
    ],
    "product_tag": [
        "1112231",
        "1112232",
        "1112233",
        "1112234",
        "1112235"
    ],
    "version_id": [
        "1.0",
        "2.0",
        "1.5",
        "3.0",
        "2.5"
    ]
}

我希望如何对其进行转换。(即从上面给出的 JSON 中的每个数组中取出每个元素并形成一个如下所示的新数组)。

{
    [
        "Product 1", 
        "1112231",
        "1.0"
    ],
    [
        "Product 2", 
        "1112232",
        "2.0"
    ],
    [
        "Product 3", 
        "1112233",
        "1.5"
    ],
    [
        "Product 4", 
        "1112234",
        "3.0"
    ],
    [
        "Product 5", 
        "1112235",
        "2.5"
    ]
}

我尝试过的

我尝试过使用 javascript 的 flatMap 函数(如下所示),但没有成功。 (注:这里testData指的是上面粘贴的JSON数据)

[testData.product_name, testData.product_tag, testData.version_id].flatMap((i, index) => i[index]);

它只返回一条这样的记录(在我的例子中我需要得到 5 条记录),

["Product 1","1112232","1.5"]

有人可以帮忙吗?

最佳答案

您可以使用Array.from像这样:

const input={"rowId":"1","product_name":["Product 1","Product 2","Product 3","Product 4","Product 5"],"product_tag":["1112231","1112232","1112233","1112234","1112235"],"version_id":["1.0","2.0","1.5","3.0","2.5"]}

const { product_name, product_tag, version_id } = input;

const output = 
  Array.from(input.product_name, (name, i) => ([ name, product_tag[i], version_id[i] ]))

console.log(output)

如果每个数组中的项目数量不相等,您可以获取最大数组的长度来创建输出

// or Math.min if you don't want undefined items
const length = Math.max(product_name.length, product_tag.length, version_id.length)

const output = 
  Array.from({ length }, (_, i) => ([ product_name[i] , product_tag[i], version_id[i] ]))

关于javascript - 解析 JSON 并形成自定义数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56147009/

相关文章:

javascript - 尽管日志消息正确,JQuery fadeIn() 仍无法正常工作

javascript - 从输入中取值并设置到另一个输入框

javascript - 如何使用 React JS 将 json api 中的所有值显示到单个下拉列表中?

javascript - 基于 scroll React JS 的 Toggle 类

javascript - Vue 组件位于另一个组件中

javascript - 如何使用 Protractor 验证不同位置的两个跨度是否相等?

Javascript 显示事件序列

javascript - bootstrap 3.1.1 轮播控件不起作用

jquery - 如何使用 jQuery 操作 JSON 多维数组

ios - SwiftUI 结合 URLSession JSON 网络调用