简单JavaScript转换JSON格式
我有一个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
函数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;i groupBy()
一个选项是将减少为一个对象,该对象由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;i groupBy()代码>你已经很接近了。但是,[]
是初始化数组,而不是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;i 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的第二个参数。对任何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使用。这是有效的!谢谢你的解释,谢谢!这是工作!谢谢你的解释,谢谢!