mongoDB的mapReduce返回的数据有可能会非常之多,所以单独拎出来先在浏览器里面玩一玩;

// 数据源
var arr = [
{"address": "四川汶川", "count": 1, "value": 1.5},
{"address": "云南玉龙", "count": 20, "value": 2.2},
{"address": "四川自贡", "count": 2, "value": 1.4},
{"address": "四川木里", "count": 1, "value": 1.7},
{"address": "甘肃天祝", "count": 4, "value": 1.8},
{"address": "云南玉龙", "count": 30, "value": 2.1},
{"address": "四川木里", "count": 100, "value": 1.1},
{"address": "云南鲁甸", "count": 2, "value": 1.3},
{"address": "云南玉龙", "count": 1, "value": 2.2},
]; // 目标结构,count求和,并归类value,以及按照count排序;
{'四川木里':{count:2,value:[1.1,1.7]},'云南玉龙':{count:100,value[1.2,1.8]}} var arr2 = []; for(var i=0 ; i<arr.length; i++){
var add = arr[i]['address']; //获取当前的地区
var arrCur = [arr[i]]; //新建一个临时的数组,作为待比较源; //把所有同一个城市的数据放到.临时数组里
for(var j=i+1 ; j<arr.length ; j++){
if(arr[j]['address'] == add){
arrCur.push(arr[j]);
arr.splice(j,1); //每放进一个则删除一个,目的是为了在外层循环的时候去重
j--; //如果删除了,指针再回退一个
}
} var obj = {},
count = 0,
value = []; for(var k = 0 ; k<arrCur.length ; k++){
count += arrCur[k]['count']; //这里对value再进行一次去重,没有的才push进去
if (value.indexOf(arrCur[k]['value'])== "-1" ){ //es5新方法;
value.push(arrCur[k]['value'])
}
} obj[add] = {
count: count,
value: value
};
obj['count'] = count; //为了方便后续用sort排序,这里做一个冗余;
arr2.push(obj)
} //排序
arr2.sort(function(a,b){
return a.count - b.count
}); for(var i=0; i<arr2.length;i++){ //删除掉冗余..;
delete arr2[i].count;
} console.log(arr2)

js的数据处理记录的更多相关文章

  1. js 实现键盘记录 兼容FireFox和IE

    这两天突然想弄弄js的键盘记录,所以就小研究了一下. 主要分四个部分 第一部分:浏览器的按键事件 第二部分:兼容浏览器 第三部分:代码实现和优化 第四部分:总结 第一部分:浏览器的按键事件 用js实现 ...

  2. js实用方法记录-js动态加载css、js脚本文件

    js实用方法记录-动态加载css/js 附送一个加载iframe,h5打开app代码 1. 动态加载js文件到head标签并执行回调 方法调用:dynamicLoadJs('http://www.yi ...

  3. js实用方法记录-简单cookie操作

    js实用方法记录-简单cookie操作 设置cookie:setCookie(名称,值,保存时间,保存域); 获取cookie:setCookie(名称); 移除cookie:setCookie(名称 ...

  4. js实用方法记录-指不定哪天就会用到的js方法

    js实用方法记录-指不定哪天就会用到的js方法 常用或者不常用都有 判断是否在微信浏览器中 测试代码:isWeiXin()==false /** * 是否在微信中 */ function isWeix ...

  5. js小功能记录

    个人日常中遇到的js小功能记录,方便查看. /** * 判断是否包含字符串某字符串 * @param {[type]} str [被检测的字符串] * @param {[type]} substr [ ...

  6. .net mvc 站点自带简易SSL加密传输 Word报告自动生成(例如 导出数据库结构) 微信小程序:动画(Animation) SignalR 设计理念(一) ASP.NET -- WebForm -- ViewState ASP.NET -- 一般处理程序ashx 常用到的一些js方法,记录一下 CryptoJS与C#AES加解密互转

    .net mvc 站点自带简易SSL加密传输   因项目需要,传输数据需要加密,因此有了一些经验,现简易抽出来分享! 请求:前端cryptojs用rsa/aes 或 rsa/des加密,后端.net ...

  7. JS继续学习记录(一)

    JS继续学习记录(一) 总感觉自己的js code写的还算可以,但是又深知好像只知道一些皮毛,所以打算仔细记录一下js晋级学习过程,日日往复 先记录一下自己目前对js的了解吧(20180828) js ...

  8. 正确判断js数据类型 总结记录

    正确判断js数据类型 总结记录 判断js中的数据类型有一下几种方法:typeof.instanceof. constructor. prototype. 三方库. js六大数据类型 number: 数 ...

  9. 2017、2018面试分享(js面试题记录)记得点赞分享哦;让更多的人看到~~

    2017面试分享(js面试题记录) 1. 最简单的一道题 '11' * 2 'a8' * 3 var a = 2, b = 3; var c = a+++b; // c = 5 2. 一道this的问 ...

随机推荐

  1. net.sf.json.JSONException: java.lang.NoSuchMethodException

    在尝试将json对象转换为list时候出现了如下错误 Exception in thread "main" net.sf.json.JSONException: java.lang ...

  2. 批处理bat命令--获取当前盘符和当前目录和上级目录

    批处理bat命令--获取当前盘符和当前目录和上级目录 批处理命令获取当前盘符和当前目录%~d0 是当前盘符%cd% 是当前目录可以用echo %cd%进行打印测试 以下例子是命令行编译Visual S ...

  3. android 线程

    android线程: 通用多个线程通信管理框架: 1.Handler监听者框架:子线程是事件源,主线程是监听者.        Handler作为子线程的监听器出现:主线程中生成Handler的子类, ...

  4. Linux简史

    原著:Ragib HasanDepartment of Computer ScienceUniversity of Illinois at Urbana-Champaign 翻译:王晓林 混沌初开 那 ...

  5. 无限的hypotheses 变成有限的dichotomies

    给定任意D,它是某些H的Bad Sample(即Ein和Eout不接近)的概率为: 即H中备选函数的数量M=|H|越少,样本数据量N越大,则样本成为坏样本的概率越小.在一个可接受的概率水平上,学习算法 ...

  6. openerp - asterisk connector(转载)

    原文:http://www.akretion.com/open-source-contributions/openerp-asterisk-voip-connector OpenERP - Aster ...

  7. 编辑器未包含main类型解决方法

    将文件移到 src 这个 Java Source Folder 下面去,现在在外面的 java 文件不会被当成一个需要编译的类,eclipse 不会编译 Java Source Folder 外面的任 ...

  8. nodejs是单线程

    你不妨先思考一个问题:在单核时代,PHP之类多线程或者多进程的,是怎么处理并发的?是排队吗? 答案是:的确就是排队.但是并不是一定要处理完请求1才能去处理请求2:实际上请求的处理过程中,有很多的时间是 ...

  9. 【img】 图片是怎么存储的

    用ue 打开一张图片,动动手脚,出现卡碟的画面效果. 可不可以用C#来做一个图片编辑器? 怎么做?路线怎么走? 稍后揭晓答案 根据实际操作获取类一些基础知识: 1. 文件是二进制存储的,为了便于查看编 ...

  10. 在IOS中使用json

    1.从https://github.com/stig/json-framework/中下载json框架:json-framework 2.解压下载的包,将class文件夹下的所有文件导入到当前工程下. ...