data中的map[_d] =1;
var storage = {}; storage.hospital = [ ['area','level','type','name','address','phone','imgUrl','time'], ['朝阳区','三级甲等','卫生部直属医院','首都儿科研究所附属儿童医院','北京市朝阳区雅宝路2号','010-85695756','img/hospital-1.jpg','14:30'], ['朝阳区','三级甲等','卫生部直属医院','中日友好医院','北京市朝阳区樱花东路2号','84205288','img/hospital-2.jpg','8:30'], ['西城区','三级甲等','卫生部直属医院','首都医科大学附属北京友谊医院','北京市西城区永安路95号','63016616','img/hospital-3.jpg','9:30'], ['朝阳区','三级甲等','卫生部直属医院','首都医科大学附属北京地坛医院B附属','北京市朝阳区樱花东路2号','84205288','img/hospital-4.jpg','8:30'], ['朝阳区','三级合格','北京区县属医院','空军总医院','北京市朝阳区樱花东路2号','84205288','img/hospital-5.jpg','8:30'], ['海淀区','三级合格','北京区县属医院','航天中心医院(原721医院)','北京市海淀区玉泉路15号','59971160','img/hospital-6.jpg','8:30'], ['丰台区','三级甲等','北京区县属医院','北京中医药大学东方医院','北京丰台区方庄芳星园一区6号','67689655','img/hospital-1.jpg','8:30'], ['丰台区','三级合格','北京区县属医院','北京电力医院','北京市丰台区太平桥西里甲1号','84205288','img/hospital-2.jpg','8:30'], ['顺义区','三级甲等','北京区县属医院','北京中医医院顺义医院','北京市顺义区站前东街5号','84205288','img/hospital-3.jpg','8:30'], ['通州区','三级甲等','其他','首都医科大学附属北京潞河医院三级综合医院','北京市通州区新华南路82号','69543901','img/hospital-4.jpg','8:30'], ]; storage.department = [ ['hospitalName', ['departmentName'] ], ['首都儿科研究所附属儿童医院',['儿科a','儿科b','儿科d'] ], ['中日友好医院',['科室a','科室b','科室c','科室d'] ], ['首都医科大学附属北京友谊医院', ['departmentName-1'] ], ['首都医科大学附属北京地坛医院B附属', ['departmentName-2'] ], ['空军总医院',['departmentName-3'] ], ['航天中心医院(原721医院)', ['departmentName-4'] ], ['北京中医药大学东方医院', ['departmentName-5'] ], ['北京电力医院', ['departmentName-6'] ], ['北京中医医院顺义医院', ['departmentName-7'] ] , ['首都医科大学附属北京潞河医院三级综合医院', ['departmentName-8'] ] ] var AjaxRemoteGetData = {}; AjaxRemoteGetData.getDistinctArea = function() { console.log('远程数据获取','getDistinctArea'); var map = {}; var arr = ['医院地区']; for(i=1,j=storage.hospital.length; i<j ; i++){ var _d = storage.hospital[i][0]; map[_d] =1; } for( k in map){ arr.push(k); } console.log('结果',arr); return arr; } AjaxRemoteGetData.getLeveByArea = function( area ){ console.log('远程数据获取','getLeveByArea','arguments:',arguments); var map = {}; var arr = ['医院等级']; for(i=1,j=storage.hospital.length; i<j ; i++){ var _area = storage.hospital[i][0]; var _d = storage.hospital[i][1]; if(area == _area){ map[_d] = 1; } } for( k in map){ arr.push(k); } console.log('结果',arr); return arr; } AjaxRemoteGetData.getNameByAreaAndLevel = function( area , level ){ console.log('远程数据获取','getNameByAreaAndLevel','arguments:',arguments); var map = {}; var arr = ['医院名称']; for(i=1,j=storage.hospital.length; i<j ; i++){ var _area = storage.hospital[i][0]; var _level= storage.hospital[i][1]; var _d = storage.hospital[i][3]; if(level == _level && area == _area ){ map[_d] = 1; } } for( k in map){ arr.push(k); } console.log('结果',arr); return arr; } AjaxRemoteGetData.getDepartmentArrByHospitalName = function( area,level,hospitalName ){ console.log('远程数据获取','getDepartmentArrByHospitalName','arguments:',arguments); var map = {}; var arr = ['科室名称']; for(i=1,j=storage.department.length; i<j ; i++){ var _hospitalName = storage.department[i][0]; var _d = storage.department[i][1]; if(hospitalName == _hospitalName ){ map[_d] = 1; } } for( k in map){ arr.push(k); } console.log('结果',arr); return arr; } AjaxRemoteGetData.getDistinctType=function(){ console.log('远程数据获取','getDistinctType'); var map = {}; var arr = ['医院类型']; for(i=1,j=storage.hospital.length; i<j ; i++){ var _d = storage.hospital[i][2]; map[_d] =1; } for( k in map){ arr.push(k); } console.log('结果',arr); return arr; } AjaxRemoteGetData.getDistinctLevel=function(){ console.log('远程数据获取','getDistinctLevel'); var map = {}; var arr = ['医院等级']; for(i=1,j=storage.hospital.length; i<j ; i++){ var _d = storage.hospital[i][1]; map[_d] =1; } for( k in map){ arr.push(k); } console.log('结果',arr); return arr; } AjaxRemoteGetData.getHospitalArrByFilter=function(type,level,area){ console.log('远程数据获取','getHospitalArrByFilter','arguments:',arguments); var map = {}; var arr = ['医院列表']; for(i=1,j=storage.hospital.length; i<j ; i++){ var _type= storage.hospital[i][2]; var _area = storage.hospital[i][0]; var _level= storage.hospital[i][1]; var _d = storage.hospital[i][3]; if( (level == _level || level =='全部') && (area == _area || area == '全部' ) && (type == _type || type == '全部') ){ arr.push(storage.hospital[i]); } } console.log('结果',arr); return arr; }
请问map[_d] =1;什么意思?如何做到提取数据的同时过滤重复的数据?
18
收起
正在回答
1回答
同学你好,问题解答如下:
1.拿地区举例子,_d表示当前遍历到的地区,如朝阳区,海淀区... 。map[_d] =1就是把这些数据放在对象中,并给它初始化属性值1 。数据就是如下这样:
这个1就是任意给属性初始化一个值,改成其它值也可以的。
2. 最终目的是把数据放在数组中,但是直接放可能会有重复的。
为了去除重复的数据,就定义了一个对象。先把数据放在对象中。因为给对象添加属性时,如果有重复的,就会覆盖,实现了去除重复数据的效果。例如第一次循环map["朝阳区"]=1,就是在map中添加了一个"朝阳区"属性,即map={"朝阳区":1} 。当第二次循环,如果还是map["朝阳区"]=1 。那么就会把之前的属性相同的属性覆盖,所以map里面依旧是{"朝阳区":1} 。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星