简单JavaScript转换JSON格式

简单JavaScript转换JSON格式,javascript,json,Javascript,Json,我有一个json格式,想要转换 这是我的剧本。我试过了,但没有得到正确的结果。请给我一些建议,谢谢,谢谢 函数groupBy(){ 变量列表=[{ “id”:“009”, “Nm”:“型号1”, “pid”:“阿迪达斯” }, { “id”:“007”, “Nm”:“型号1”, “pid”:“阿迪达斯” }, { “id”:“006”, “Nm”:“型号1”, “pid”:“阿迪达斯” }, { “id”:“pm1”, “Nm”:“型号1”, “pid”:“彪马” }, { “id”:“003

我有一个json格式,想要转换

这是我的剧本。我试过了,但没有得到正确的结果。请给我一些建议,谢谢,谢谢

函数groupBy(){
变量列表=[{
“id”:“009”,
“Nm”:“型号1”,
“pid”:“阿迪达斯”
},
{
“id”:“007”,
“Nm”:“型号1”,
“pid”:“阿迪达斯”
},
{
“id”:“006”,
“Nm”:“型号1”,
“pid”:“阿迪达斯”
},
{
“id”:“pm1”,
“Nm”:“型号1”,
“pid”:“彪马”
},
{
“id”:“003”,
“Nm”:“型号1”,
“pid”:“阿迪达斯”
},
{
“id”:“pm5”,
“Nm”:“型号1”,
“pid”:“彪马”
},
{
“id”:“aj1”,
“Nm”:“型号1”,
“pid”:“nike”
},
{
“id”:“aj2”,
“Nm”:“型号1”,
“pid”:“nike”
}
];
var输出=[];
对于(变量i=0;igroupBy()
一个选项是
减少为一个对象,该对象由
pid
s索引,其值为数组。在每次迭代中,如果数组不存在,请在相应的属性处创建该数组,然后推送到该数组:

var列表=[
{“id”:“009”,“Nm”:“1型”,“pid”:“阿迪达斯”},
{“id”:“007”,“Nm”:“1型”,“pid”:“阿迪达斯”},
{“id”:“006”,“Nm”:“型号1”,“pid”:“阿迪达斯”},
{“id”:“pm1”,“Nm”:“型号1”,“pid”:“puma”},
{“id”:“003”,“Nm”:“型号1”,“pid”:“阿迪达斯”},
{“id”:“pm5”、“Nm”:“型号1”、“pid”:“puma”},
{“id”:“aj1”、“Nm”:“1型”、“pid”:“nike”},
{“id”:“aj2”,“Nm”:“1型”,“pid”:“nike”}
];
console.log(
列表.减少((a,项)=>{
常量{pid}=项;
如果(!a[pid])a[pid]=[];
a[pid]。推送(项目);
返回a;
}, {})

);
一个选项是
减少为一个对象,该对象由
pid
s索引,其值为数组。在每次迭代中,如果数组不存在,请在相应的属性处创建该数组,然后推送到该数组:

var列表=[
{“id”:“009”,“Nm”:“1型”,“pid”:“阿迪达斯”},
{“id”:“007”,“Nm”:“1型”,“pid”:“阿迪达斯”},
{“id”:“006”,“Nm”:“型号1”,“pid”:“阿迪达斯”},
{“id”:“pm1”,“Nm”:“型号1”,“pid”:“puma”},
{“id”:“003”,“Nm”:“型号1”,“pid”:“阿迪达斯”},
{“id”:“pm5”、“Nm”:“型号1”、“pid”:“puma”},
{“id”:“aj1”、“Nm”:“1型”、“pid”:“nike”},
{“id”:“aj2”,“Nm”:“1型”,“pid”:“nike”}
];
console.log(
列表.减少((a,项)=>{
常量{pid}=项;
如果(!a[pid])a[pid]=[];
a[pid]。推送(项目);
返回a;
}, {})

);你已经很接近了。但是,
[]
是初始化数组,而不是javascript中的对象。在JS中,它是
{}

以下是实现此目的的多种方法之一

函数groupBy(){
变量列表=[
{“id”:“009”,“Nm”:“1型”,“pid”:“阿迪达斯”},
{“id”:“007”,“Nm”:“1型”,“pid”:“阿迪达斯”},
{“id”:“006”,“Nm”:“型号1”,“pid”:“阿迪达斯”},
{“id”:“pm1”,“Nm”:“型号1”,“pid”:“puma”},
{“id”:“003”,“Nm”:“型号1”,“pid”:“阿迪达斯”},
{“id”:“pm5”、“Nm”:“型号1”、“pid”:“puma”},
{“id”:“aj1”、“Nm”:“1型”、“pid”:“nike”},
{“id”:“aj2”,“Nm”:“1型”,“pid”:“nike”}
];
//将输出初始化为对象
var输出={};
对于(变量i=0;igroupBy()你已经很接近了。但是,
[]
是初始化数组,而不是javascript中的对象。在JS中,它是
{}

以下是实现此目的的多种方法之一

函数groupBy(){
变量列表=[
{“id”:“009”,“Nm”:“1型”,“pid”:“阿迪达斯”},
{“id”:“007”,“Nm”:“1型”,“pid”:“阿迪达斯”},
{“id”:“006”,“Nm”:“型号1”,“pid”:“阿迪达斯”},
{“id”:“pm1”,“Nm”:“型号1”,“pid”:“puma”},
{“id”:“003”,“Nm”:“型号1”,“pid”:“阿迪达斯”},
{“id”:“pm5”、“Nm”:“型号1”、“pid”:“puma”},
{“id”:“aj1”、“Nm”:“1型”、“pid”:“nike”},
{“id”:“aj2”,“Nm”:“1型”,“pid”:“nike”}
];
//将输出初始化为对象
var输出={};
对于(变量i=0;igroupBy()对您的任意分组使用此方法

const groupBy = function(arr, prop) {
  return arr.reduce(function(groups, item) {
    const val = item[prop]
    groups[val] = groups[val] || []
    groups[val].push(item)
    return groups
  }, {})
}

const list = [
                {"id":"009","Nm":"Model 1","pid":"adidas"},
                {"id":"007","Nm":"Model 1","pid":"adidas"},
                {"id":"006","Nm":"Model 1","pid":"adidas"},
                {"id":"pm1","Nm":"Model 1","pid":"puma"},
                {"id":"003","Nm":"Model 1","pid":"adidas"},
                {"id":"pm5","Nm":"Model 1","pid":"puma"},
                {"id":"aj1","Nm":"Model 1","pid":"nike"},
                {"id":"aj2","Nm":"Model 1","pid":"nike"}
            ];

const groupOutput = groupBy(list, 'pid');

您可以将密钥作为第二个参数传递到groupBy中,作为groupBy的第二个参数。

对任何groupBy使用此方法

const groupBy = function(arr, prop) {
  return arr.reduce(function(groups, item) {
    const val = item[prop]
    groups[val] = groups[val] || []
    groups[val].push(item)
    return groups
  }, {})
}

const list = [
                {"id":"009","Nm":"Model 1","pid":"adidas"},
                {"id":"007","Nm":"Model 1","pid":"adidas"},
                {"id":"006","Nm":"Model 1","pid":"adidas"},
                {"id":"pm1","Nm":"Model 1","pid":"puma"},
                {"id":"003","Nm":"Model 1","pid":"adidas"},
                {"id":"pm5","Nm":"Model 1","pid":"puma"},
                {"id":"aj1","Nm":"Model 1","pid":"nike"},
                {"id":"aj2","Nm":"Model 1","pid":"nike"}
            ];

const groupOutput = groupBy(list, 'pid');

您可以将密钥作为第二个参数传递给groupBy,以供groupBy使用。

这是有效的!谢谢你的解释,谢谢!这是工作!谢谢你的解释,谢谢!