JavaScript中数据缩减后的排序
我从JSON文件中解析了一组数据,并将其减少到了出现的次数。我现在需要将出现的次数从最多到最少排序。例如:JavaScript中数据缩减后的排序,javascript,json,sorting,Javascript,Json,Sorting,我从JSON文件中解析了一组数据,并将其减少到了出现的次数。我现在需要将出现的次数从最多到最少排序。例如: var myData = [{ "datapoint1": "55", "datapoint2": "500", "datapoint3": "mydata@data.com", "datapoint4": 5656 }, { "datapoint1": "55", "datapoint
var myData = [{
"datapoint1": "55",
"datapoint2": "500",
"datapoint3": "mydata@data.com",
"datapoint4": 5656
}, {
"datapoint1": "55",
"datapoint2": "404",
"datapoint3": "mydata2@data.com",
"datapoint4": 5656
}, {
"datapoint1": "55",
"datapoint2": "502",
"datapoint3": "mydata3@data.com",
"datapoint4": 5656324
}, {
"datapoint1": "55",
"datapoint2": "500",
"datapoint3": "mydata33@data.com",
"datapoint4": 5656554
}
]
然后,我使用JSON并对其进行解析、映射,然后减少到每个DataPoint2出现的次数。为了简洁起见,上面的虚拟数据重复了5000-6000次
var dataParsed = JSON.parse(myData);
var mapDataPoint2 = dataParsed.map(function (data) {
return data.datapoint2
});
var reduceDatapoint2 = mapDataPoint2.reduce(function (prev, cur) {
prev[cur] = (prev[cur] || 0) + 1;
return prev;
}, {});
console.log(reduceDatapoint2)
在这一点上,我可以得到控制台的输出,记录每次发生的次数。我现在需要能够从大多数到最少进行排序。我试过了,分类和
似乎无法执行任何操作,控制台中没有错误
任何帮助都将不胜感激 您可以从简化数据点2中获取值进行排序:
myData.sort((a,b) => reduceDatapoint2[b.datapoint2] - reduceDatapoint2[a.datapoint2]);
演示
var myData=[{
数据点1:55,
数据点2:500,
数据点3:mydata@data.com,
数据点4:5656
},
{
数据点1:55,
数据点2:404,
数据点3:mydata2@data.com,
数据点4:5656
},
{
数据点1:55,
数据点2:502,
数据点3:mydata3@data.com,
数据点4:5656324
},
{
数据点1:55,
数据点2:500,
数据点3:mydata33@data.com,
数据点4:56554
}
]
var dataParsed=myData;
var mapDataPoint2=dataParsed.mapfunctiondata{
返回data.datapoint2
};
var reducedapatoint2=mapDataPoint2.reducefunctionprev,cur{
上一个[当前]=上一个[当前]| | 0+1;
返回上一个;
}, {};
console.LogReduceDapPoint2
myData.sorta,b=>reduceDatapoint2[b.datapoint2]-reduceDatapoint2[a.datapoint2];
console.logmyData;那么您想按datapoint2具有相同值的次数对数据进行排序吗?@JacquesMarais-这是正确的!编辑:我想对每个datapoint2出现的次数进行排序。举个例子:如果500出现17次,502出现13次,404出现7次,那么我想用500,然后502,然后404来排序。我想进一步澄清我的请求。我想对每个datapoint2出现的次数进行排序。举个例子:如果500发生了17次,502发生了13次,404发生了7次,那么我想先用500来排序,因为它发生的次数最多,然后是502,然后是404。