Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.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 查找对象数组中对象键值的频率_Javascript_Arrays_Node.js - Fatal编程技术网

Javascript 查找对象数组中对象键值的频率

Javascript 查找对象数组中对象键值的频率,javascript,arrays,node.js,Javascript,Arrays,Node.js,我有一系列的警察数据,每一个都是犯罪。对象数组的长度为1000 每个对象都有一个键/值,例如community_area:22 我试图遍历对象数组,以找到数组中存在的前三个社区区域。因此,如果社区区域22、70和1的犯罪率最高,那么它将返回这三个区域 除了创建77个不同社区区域的阵列,然后比较长度之外,还有什么更有效的方法 这类事情的模式相当简单 创建一个对象,迭代数组,并使用数据对象的公共属性作为新对象中的键,值将是增量计数 然后迭代新对象并比较这些计数 风险值数据=[ {社区地区:22},

我有一系列的警察数据,每一个都是犯罪。对象数组的长度为1000

每个对象都有一个键/值,例如community_area:22

我试图遍历对象数组,以找到数组中存在的前三个社区区域。因此,如果社区区域22、70和1的犯罪率最高,那么它将返回这三个区域


除了创建77个不同社区区域的阵列,然后比较长度之外,还有什么更有效的方法

这类事情的模式相当简单

创建一个对象,迭代数组,并使用数据对象的公共属性作为新对象中的键,值将是增量计数

然后迭代新对象并比较这些计数

风险值数据=[ {社区地区:22}, {社区地区:22}, {社区地区:9}, {社区地区:9}, {社区地区:9}, {社区面积:5}, {社区面积:5}, {社区面积:5}, {社区面积:5}, {社区面积:1}, {社区地区:2}, {社区面积:3}, ]; var countObj=data.reducea,c=>{ a[c.社区| u区]=a[c.社区| u区]| 0+1; 归还 },{}; 控制台。记录“社区计数”,countObj var top3=Object.keyscountObj .sorta,b=>countObj[b]-countObj[a] .0,3 .地图编号//可选,如果需要数字与字符串
log'top3',top3我想出了这个代码-它可以工作。看起来与另一个答案非常相似。 var testData=[{ 地区:22 }, { 地区:23 }, { 地区:17 }, { 面积:12 }, { 面积:45 }, { 面积:12 }, { 地区:17 }, { 地区:23 }, { 地区:34 }, { 地区:22 }, { 面积:12 }, { 面积:45 }, { 面积:45 }, { 面积:45 }]; var result=testData.reduceacc,obj=>{ 如果acc.hasOwnPropertyobj.area{ 附件[目标区域]+; }否则{ 附件[obj.面积]=1; }; 返回acc; }, {}; var resultar=[]; 对于结果{resultar.push[key,result[key]]}中的var键 结果r.sort a,b=>b[1]-a[1]; //现在输出前3项 对于var i=0;i你想做什么?似乎您可以在对象数组上循环,并对其中的每个区域或值求和,然后排序并获得前三个值?数据中是否有比您显示的更多的内容?也许更多的数据集样本会有所帮助?想象一下您需要在纸上手动执行这些操作。如果你被要求手动查找前三大犯罪区域,你会怎么做呢?在甜甜圈店午餐时间有很多。此问题不应回答,因为它表明没有试图找到解决方案或找到现有答案。@QueSo在原始问题文本中似乎没有试图手动、使用算法或编程语言解决查询。关于高效的主题,第一步是描述高效对于需求意味着什么,并披露到目前为止您尝试过的基准,这两个基准在OP.efficient中都没有?看见