문자열을 비교해서 겹치는 문자열 중 첫번째 문자열만 return하는 문제
처음 생각했던 방법은 includes를 사용해서 겹치는 문자열만 push해 주는 방법을 생각했다.
function solution(a) {
let arr = a.split(",");
// console.log(arr)
let arr2 = [];
for (let a of arr) {
if(!arr2.includes(a)){
arr2.push(a);
}
}
return arr2
}
console.log(solution("4,2,3,3,2,3,4,1,2,3")); // ["4","2","3","1"]
페어 프로그래밍 하면서 팀원이 작성한 코드는 filter를 사용해서 해당 index의 값과 같은 배열을 arr2에 담아주는 코드로 작성했다.
근데 처음에는 if조건문으로 값을 push 해주도록 작성했더니 자꾸 입력한 값 그대로 전체 배열이 튀어나왔다.
function solution(a) {
let arr = a.split(",");
// console.log(arr);
if(arr.filter((b, i) => arr.indexOf(b) === i)){
arr2.push(b);
};
}console.log(solution("4,2,3,3,2,3,4,1,2,3")); // ["4,2,3,3,2,3,4,1,2,3"]
그래서 arr2에 바로 filter된 배열을 담을 수 있도록 작성했더니 제대로 값이 도출되었다.
function solution(a) {
let arr = a.split(",");
// console.log(arr);
let arr2 = arr.filter((b, i) => arr.indexOf(b) === i);
return [...arr2].map((a) => parseInt(a));
}
console.log(solution("4,2,3,3,2,3,4,1,2,3")); // [4,2,3,1]
오늘의 한줄평 : filter 같이 새로운 배열을 반환해주는 메소드는 변수이름을 할당해주어야한다.
'TIL' 카테고리의 다른 글
23.04.15 TIL (0) | 2023.04.18 |
---|---|
23.04.13 TIL (0) | 2023.04.18 |
23.04.12 TIL (0) | 2023.04.18 |
23.04.11 TIL (0) | 2023.04.17 |
23.04.07 TIL (0) | 2023.04.17 |