includes() - 배열이 특정 요소를 포함하고 있는지 체크

송한솔·2023년 5월 3일

includes란?

이 메서드는 대상 배열에 대해 해당 요소를 검색하고,

요소를 찾으면 true를 반환하고,

찾지 못하면 false를 반환합니다

const array = [1, 2, 3, 4, 5];
console.log(array.includes(3)); // true
console.log(array.includes(6)); // false
const array = [1, 2, 3, 4, 5];

console.log(array.includes(3, 2)); // true (2번 인덱스부터 검색 시작)
console.log(array.includes(3, 4)); // false (4번 인덱스부터 검색 시작)

예제 1, filter를 사용한 배열간 교집합 출력

const s1 = ["a", "b", "c"];
const s2 = ["com", "b", "d", "p", "c"]; 
// s1배열과 s2배열은 "b", "c"가 같습니다.
const a = s1.filter(item => s2.includes(item));
console.log(a); ['b', 'c']

즉, filter 기능을 이용해 s2안에 item을 포함하고 있는 속성을 따로 빼낼 수 있습니다.

예제 2. 문자열을 사용한 교집합 출력

모음 제거

// 문제 설명
영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다.
문자열 my_string이 매개변수로 주어질 때
모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.

// 제한사항
my_string은 소문자와 공백으로 이루어져 있습니다.
1 ≤ my_string의 길이 ≤ 1,000

// 입출력 예
my_string	result
"bus"	"bs"
"nice to meet you"	"nc t mt y"

// 주어진 함수
function solution(my_string) {
    var answer = "";
    return answer;
}

// 풀이 1. 기본적인 반복문을 사용한 방법
function solution(my_string) {
    var min_string = "aeiou";
    var answer = "";

    for (var i = 0; i < my_string.length; i++) {
        if (!min_string.includes(my_string[i])) {
            answer += my_string[i];
        }
    }

    return answer;
}

// 풀이 2. filter메서드 사용
function solution(my_string) {
    var answer = "";
    var min_string = "aeiou";
    var answer = my_string.split('').filter(item => !min_string.includes(item));
    // 1. 문자열 my_string에 split()을 이용하여 배열로 변환합니다.
    // 2. 생성된 배열에 filter로 min_string이 포함되지 않은 배열만 출력하도록 만듭니다.
    return answer.join('');
    // 3. 그렇게 생성된 answer 배열을 하나의 문자열로 합칩니다.
}

// 풀이 3. 정규식을 사용한 방법 // includes와는 상관없지만 기능적으로 비슷하여 넣음
function solution(my_string) {
    return my_string.replace(/[aeiou]/g, '');
}

풀이 2. 를 보면

var min_string = "aeiou";

이렇게 문자열로 되있어서 사용에 혼동이 올 수 있는데

function solution(my_string) {
    var min_string = ["a", "e", "i", "o", "u"];
    var answer = my_string.split("").filter(item => !min_string.includes(item));
    return answer.join("");
}

이렇게 배열로 만들어서 사용해도 같은 결과를 출력하는 것을 볼 수 있습니다.

0개의 댓글