지금 매니저일을 진행하는 게 상담기간이여서 아침부터 저녁까지 상담을 하고 나니 진이나 기운이 다 빠져서 그대로 기절하는 게 일상인 것 같다.
다음주 월요일까진 상담이 계속 이어지는데 그 이후로 시간이 나면 개인 공부시간이 생기지 않을까 싶다.
그래도 매일 30분이상 코딩하기는 알고리즘 문제로라도 진행하고 있다!
알고리즘 문제 풀기(프로그래머스)
https://github.com/hoinlee-moi/Algorithm
JS기본문법 다시 공부
https://github.com/hoinlee-moi/ModernJS
React 강의 듣기
https://github.com/hoinlee-moi/React_prac
중복제거
이전에 filter와 set을 다뤘지만 forEach가 있었다.
let arr = [1, 1, 2, 3, 4];
let uniqueArr = [];
arr.forEach((element) => {
//배열 전체를 순회하면서 uniqueArr에 현재 순회중인 element가 존재하지 않는다면 push
if(!uniqueArr.includes(element)){
uniquArr.push(element);
}
});
console.log(uniqueArr);
//result : [1, 2, 3, 4]
2차원 배열 중복 제거
위와 같이 1차원 배열에서의 중복 제거 방법을 보고 2차원 배열 중복 제거를 해봣는데 전혀 되질 않았다.
//최종 변경 코드
let locations = [
[126, 34],
[126, 34],
[126, 35],
[127, 34],
];
function removeDup(arr) {
return [...new Set(arr.join("|").split("|"))]
.map((v) => v.split(","))
.map((v) => v.map((a) => +a));
}
let uniqueArr = removeDup(locations);
console.log(uniqueArr);
다차원 배열은 set 형태로 만들어도 그대로니 문자열 형태의 1차원 배열로 만든 다음에 set으로 만들어 중복을 제거하고 다시 2차원 배열의 형태로 돌리는 방식이다.
join,split
- join : 배열의 모든 요소를 연결해 하나의 문자열로 만든다.
console.log(locations.join("|"));
// 126,34|126,34|126,35|127,34
- split : String 객체를 지정한 구분자를 이용해 여러개의 문자열로 나눈다.
console.log(location.join("|").split("|"));
//[ '126,34', '126,34', '126,35', '127,34' ]
//이렇게 되면 이제 set을 사용해 중복제거가 가능하다!
let unique = [...new Set(locations.join("|").split("|"))];
console.log(unique.map((v) => v.split(",")));
// [ [ '126', '34' ], [ '126', '35' ], [ '127', '34' ] ]
하지만 이럴경우 숫자가 아닌 문자열이 들어가게되어 이중 map을 이용하여 풀어내자
let unique = [...new Set(locations.join("|").split("|"))];
let uniqueArr = unique.map((v) => v.split(","))
console.log(uniqueArr.map((v) => v.map((a) => +a)));
/*
v는 ["126", "34"]와 같은 요소 하나하나
a는 그안에 있는 요소에 접근하는 것으로 "126"과 같은 문자열 요소들을 숫자로 바꿔준다.
*/
출처 사이트