카테고리 없음

javaScript Map

비눗방울거품 2020. 9. 4. 00:59

◆ Map 선언

const mapPopDataRide = new Map();

const mapPopDataRide = new Map();
const mapPopDataQuit = new Map(); 
for (var i = 0; i < popDataSelect.length; i++) {
		let tempArrayRide = [];		
		let tempArrayQuit = [];		
	for (var j = 0; j < popData.length; j++) {
		if(popDataSelect[i] == popData[j].selectName){
			tempArrayRide.push((popData[j].ride));
			tempArrayQuit.push((popData[j].quit));
		}
	} 
	mapPopDataRide.set((popDataSelect[i]).replace(/\"/gi, "").toString(), tempArrayRide);
	mapPopDataQuit.set((popDataSelect[i]).replace(/\"/gi, "").toString(), tempArrayQuit);
	
}

※ key 값이 검색이 안될 때가 있는데 이렇때는 "" 을 제거 하고 넣어서 검색하면 된다.

※ 값을 투입 할 때에는 set , 값을 가져 올때는 get("key") 

 

 

◆ 중복값 제거 - 순서 유지 (순서 변경 없이 )

// 중복 값 제거
var popDataMonth = [];
var popDataSelect = [];
for (var i = 0; i < popData.length; i++) {
	popDataMonth.push(popData[i].month);
}
for (var i = 0; i < popData.length; i++) {
	popDataSelect.push(popData[i].selectName);
}


popDataMonth = popDataMonth.reduce(function(a,b){if(a.indexOf(b)<0)a.push(b);return a;},[]);
popDataSelect = popDataSelect.reduce(function(a,b){if(a.indexOf(b)<0)a.push(b);return a;},[]);

 

 

◆ Map 가져다 쓰기

 

// 승차 증감율
	tableTags += ' <tr>';
	for (const [key, value] of mapPopDataRide) {
		
		for (let k = 0; k < mapPopDataRide.get(key).length; k++) {
			console.log("사이즈 : "+mapPopDataRide.get(key).length);
			console.log("키값을 넣었을때 값 : "+mapPopDataRide.get(key));
			if (k===0) {
				tableTags += '<td></td>';
				console.log(mapPopDataRide.get(key)[k]);
				console.log(key);
			}
			else if((popDataSelect[i]).replace(/\"/gi, "") == key.replace(/\"/gi, "")){
				let tableValue = Math.ceil((((mapPopDataRide.get(key)[k] - mapPopDataRide.get(key)[k-1]) / mapPopDataRide.get(key)[k-1]) * 100));
				if (tableValue > 0) {
				tableTags += ' 										<td>'+tableValue+'% <div style="color:blue; display:inline">▲</div></td> ';			
				}else {
				tableTags += ' 										<td>'+tableValue+'% <div style="color:red; display:inline">▼</div></td> ';			
				}
				
			}
		}
	}