data中的map[_d] =1;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 | 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积分~
来为老师/同学的回答评分吧