Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Js传输Json的值_Javascript_Arrays_Json_Object - Fatal编程技术网

Javascript 使用Js传输Json的值

Javascript 使用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

javascript初学者,我在传输值时遇到问题​​将JSON中的对象数组“objects1”转换为新对象数组“objects2”的键,该数组始终使用JSON

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,是用于计算类的数量