Javascript 操作Json对象文本

Javascript 操作Json对象文本,javascript,json,Javascript,Json,我正在使用javascript中的json对象文本。从我最初的json开始 [{"group":"sample 1","name":"FC_TOT","value":6}, {"group":"sample 1","name":"PPC","value":88}, {"group":"sample 1","name":"PRO_OX","value":6}, {"group":"sample 1","name":"POLY_TOT","value":6}], [{"group":"sample

我正在使用javascript中的json对象文本。从我最初的json开始

[{"group":"sample 1","name":"FC_TOT","value":6},
{"group":"sample 1","name":"PPC","value":88},
{"group":"sample 1","name":"PRO_OX","value":6},
{"group":"sample 1","name":"POLY_TOT","value":6}],

[{"group":"sample 2","name":"FC_TOT","value":9},
{"group":"sample 2","name":"PPC","value":8},
{"group":"sample 2","name":"PRO_OX","value":7},
{"group":"sample 2","name":"POLY_TOT","value":7}]]
我需要根据名称对其重新排序,并为每个组分配值。新的json应该如下所示

[
    {
        "group": "FC_TOT",
        "sample 1": 6,
        "sample 2": 9
    },
    {
        "group": "PPC",
        "sample 1": 88,
        "sample 2":8
    },
    {
        "group": "PRO_OX",
        "sample 1": 6,
        "sample 2": 7
    },
    {
        "group": "POLY_TOT",
        "sample 1": 6,
        "sample 2": 7
    }
]
其中,新组是来自原始json的名称。如何实现这一点有什么想法吗?

您可以使用
reduce()
来构建数组和一个
forEach()
循环对象内部

var数据=[[{“组”:“样本1”,“名称”:“FC_-TOT”,“值”:6},{“组”:“样本1”,“名称”:“PPC”,“值”:88},{“组”:“样本1”,“名称”:“PRO_-OX”,“值”:6},{“组”:“样本1”,“名称”:“POLY_-TOT”,“值”:6},{“组”:“样本2”,“名称”:“名称”:“FC_-TOT”,“值”:9},{“组”:“样本2”,“名称”:“PPC”,“值”:8},{“组”:“样本2”,“名称”:“PRO{“组”:“样本2”,“名称”:“POLY_TOT”,“值”:7}]]
var obj={}
//环路主阵列
var结果=数据.reduce(函数(r,e){
//循环每个组数组以获取对象
e、 forEach(函数(a){
//检查当前对象名称是否作为obj中的键存在
如果(!obj[a.name]){
//如果它没有创建新对象作为其值并将其存储在obj中
obj[a.name]={group:a.name[a.group]:a.value}
//在reduce或r的结果数组中推送该对象的值
r、 推送(对象[a.name])
}否则{
//如果它已存在于obj中,则为其分配新属性
Object.assign(obj[a.name],{[a.group]:a.value})
}
})
//返回累加器或结果数组
返回r;
}, [])

console.log(result)
您能解释一下这里发生了什么吗?这将非常有帮助。提前谢谢。您需要什么?