본문 바로가기

TIL

23.04.10 TIL

문자열을 비교해서 겹치는 문자열 중 첫번째 문자열만 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