Javascript 使用Js传输Json的值
javascript初学者,我在传输值时遇到问题将JSON中的对象数组“objects1”转换为新对象数组“objects2”的键,该数组始终使用JSONJavascript 使用Js传输Json的值,javascript,arrays,json,object,Javascript,Arrays,Json,Object,javascript初学者,我在传输值时遇到问题将JSON中的对象数组“objects1”转换为新对象数组“objects2”的键,该数组始终使用JSON objects1 = [ {"name" : "Jake" , "class" : "D"}, {"name" : "Maria" , "class" : "C"}, {"name" : "Donald" , "class" : "C"}, {"name" : "Mike" , "class" : "E"}, {"name" : "Eva
objects1 = [
{"name" : "Jake" , "class" : "D"},
{"name" : "Maria" , "class" : "C"},
{"name" : "Donald" , "class" : "C"},
{"name" : "Mike" , "class" : "E"},
{"name" : "Eva" , "class" : "C"}
]
objects2 = [
{"class" : "D" , "total" : "1"},
{"class" : "C" , "total" : "3"},
{"class" : "E" , "total" : "1"}
]
我目前只成功地删除了重复项
var cache = {};
objects2 = objects1.filter(function(elem,index,array){
return cache[elem.currency_name]?0:cache[elem.currency_name]=1;
});
与辅助对象一起使用以创建新阵列:
var arr1=[{“name”:“Jake”,“class”:“D”},{“name”:“Maria”,“class”:“C”},{“name”:“Donald”,“class”:“C”},{“name”:“Mike”,“class”:“E”},{“name”:“Eva”,“class”:“C”};
var helper=Object.create(null);//创建一个空对象
var结果=arr1.reduce(函数(r,o){
var item=helper[o.class];//通过类从helper获取项
如果(!item){//如果该项不存在
item={class:o.class,总计:0};//创建一个新项
helper[o.class]=item;//将其添加到helper
r、 推送(项);//推送到结果数组
}
item.total++;//增加总数
返回r;
}, []);
控制台日志(结果)
您可以将Object.values()
与reduce()
一起使用
var数据=[
{“name”:“Jake”,“class”:“D”},
{“姓名”:“玛丽亚”,“班级”:“C”},
{“name”:“Donald”,“class”:“C”},
{“name”:“Mike”,“class”:“E”},
{“name”:“Eva”,“class”:“C”}
]
var result=Object.values(data.reduce)(函数(r,e){
如果(!r[e.class])r[e.class]={class:e.class,总计:0}
r[e.class]。总计+=1;
返回r;
}, {}))
console.log(结果)
您可以使用Set:
var objects1=[
{“name”:“Jake”,“class”:“D”},
{“姓名”:“玛丽亚”,“班级”:“C”},
{“name”:“Donald”,“class”:“C”},
{“name”:“Mike”,“class”:“E”},
{“name”:“Eva”,“class”:“C”}
];
var类=新集合(objects1.map(obj=>obj.class));
var objects2=[];
classes.forEach(cl=>{
var obj={class:cl,total:objects1.filter(it=>it.class==cl.length};
对象2.推送(obj);
});
console.log(objects2)代码>你能显示你想要的最终数组吗?@Faly,对象的最终数组是“objects2”,所以你想将objects1转换为objects2?@Faly,是用于计算类的数量