개발자

[javascript] 배열과 includes 질문

2023년 04월 18일조회 166

요즘 부트캠프에서 javascript를 배우고 있습니다. 제 질문은요. 배열 a에 150개 정도의 숫자가 랜덤으로 들어있고 해당 배열에 내가 원하는 숫자가 있는지 확인하려고 합니다. 이때 includes를 사용하면 된다는건 알았습니다. a.includes(4) 이렇게 하면 true or false가 나오더라고요. 근데 제가 하고 싶은건 4가 있는지 확인하는것 뿐만아니라 한 10개의 숫자가 모두 들어있는지 확인하고 싶어요 확인해야하는 숫자가 들어있는 배열을 b라고 하면 a.includes(b)는 무조건 false가 나오더라고요. 1. 모두 포함하고 있어도 왜 false가 나오는 건가요 2. a에 b의 항목이 모두 있는지 확인하는 방법을 알려주세요

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 4

김상우님의 프로필 사진

해당 값이 있는지 없는지 확인하려면 set을 이용해보면 어떨까요? 질문에는 안나와 있지만 일단 a와 b 에는 중복이 없다고 가정하겠습니다. 먼저 a와 b 사이의 합집합을 구했을때 a의 개수와 a 합집합 b 의 개수가 같으면 b는 a에 모두 포함된다는 로직으로 생각했습니다.

1
2
3
4
5
6
7
8
9
const yourFunction = (a, b) => {
  const union = new Set([...a, ...b])
  if (union.size === a.length) {
    return true
  }
  return false
}

yourFunction(a, b)
김익현님의 프로필 사진

안녕하세요~😃 단순히 찾는 함수라고 하시면 some과 every를 추천 드립니다!! some 은 내가 원하는 조건을 만족 하는 배열의 요소가 하나라도 있으면 true를 반환 합니다!! every 는 내가 원하는 조건을 배열안에 요소가 모두 만족해야 true를 반환 합니다!! 작성자님은 some을 활용 하시면 더 좋을것 같아요!!

삭제된 사용자님의 프로필 사진

삭제된 사용자

2023년 04월 19일

2번에 대해서는 다른 분들께서 좋은 답변을 남겨주셔서 1번 답변을 드리겠습니다. https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/includes 여기를 참고하시면, includes 메소드는 인자로 검색할 대상을 받는다고 되어있습니다. 작성자님께서 사용하신대로 a.includes(b)라고 사용하면 a 배열의 원소로 b 배열이 있는지를 검사하는 것입니다. a = [1, 2, 3] / b = 2 / a.includes(b): true a = [1, 2, 3] / b = [1, 2] / a.includes(b): false a = [[1, 2], 3, 4] / b = [1, 2] / a.includes(b): true 이런 식으로 동작한다고 생각하시면 될 것 같습니다.

커리어리 AI 봇님의 프로필 사진

1. ' a.includes(b) '는 false가 나오는 이유는 ' includes() ' 함수가 배열 내에서 요소를 찾는 것이고, 여기서 ' b '는 배열입니다. ' a ' 배열 내에 ' b ' 배열을 요소로써 찾으려 하기 때문에 결과가 false가 나옵니다. 2. 배열 ' a '가 배열 ' b '의 모든 항목을 포함하고 있는지 확인하려면 every() 함수를 사용할 수 있습니다. 다음과 같이 사용하면 됩니다. 아래 코드에서 ' b.every() ' 함수는 배열 ' b '의 모든 요소에 대해 괄호 안의 콜백 함수를 실행하고, 콜백 함수가 모든 요소에 대해 true를 반환할 경우에만 ' true '를 반환합니다. 콜백 함수는 ' a.includes(item) '을 실행하여 배열 ' a '에 ' item '이 포함되어 있는지 확인합니다. 이렇게 하면 배열 ' a '에 배열 ' b '의 모든 요소가 포함되어 있는지 확인할 수 있습니다.

1
2
3
4
5
const a = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const b = [3, 4, 5];

const result = b.every((item) => a.includes(item));
console.log(result); // true

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!