data中的map[_d] =1;

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;什么意思?如何做到提取数据的同时过滤重复的数据?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,问题解答如下:

1.拿地区举例子,_d表示当前遍历到的地区,如朝阳区,海淀区... 。map[_d] =1就是把这些数据放在对象中,并给它初始化属性值1 。数据就是如下这样:

http://img1.sycdn.imooc.com//climg/5e363eb009b3220806830046.jpg

这个1就是任意给属性初始化一个值,改成其它值也可以的。

2. 最终目的是把数据放在数组中,但是直接放可能会有重复的。

http://img1.sycdn.imooc.com//climg/5e363f17099ad67e11030057.jpg

为了去除重复的数据,就定义了一个对象。先把数据放在对象中。因为给对象添加属性时,如果有重复的,就会覆盖,实现了去除重复数据的效果。例如第一次循环map["朝阳区"]=1,就是在map中添加了一个"朝阳区"属性,即map={"朝阳区":1} 。当第二次循环,如果还是map["朝阳区"]=1 。那么就会把之前的属性相同的属性覆盖,所以map里面依旧是{"朝阳区":1} 。

http://img1.sycdn.imooc.com//climg/5e363f5309b6b21707290278.jpg

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 迷失的小麦 提问者 #1
    为什么能够覆盖掉
    2020-02-02 11:35:05
  • 好帮手慕夭夭 回复 提问者 迷失的小麦 #2
    是因为属性名相同 ,这就是对象的特点。例如对象已经有一个属性xx ,那么再次给它添加一个xx属性 ,就会把原来的xx属性覆盖。
    2020-02-02 18:54:03
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码