[javascript] 배열 관련 찾는 메소드 (every, some, find, findIndex, indexOf, includes, filter)

ZZEON·2024년 1월 4일
0

javascript

목록 보기
2/3

배열은 어디에나 많이 쓰이기 때문에 한 번 정리하고 가면 좋을 거 같아 작성해본다.

every() : boolean, 모두 맞거나 틀린 것을 찾아야 할 때
some() : boolean, 하나라도 맞거나 틀린 것을 찾아야 할 때
find() : 배열에서 찾은 첫 번째 요소의 값이 필요할 때
findIndex() : 배열에서 찾은 요소의 인덱스 값이 필요할 때
includes() : boolean, 배열에 찾고 싶은 값이 있는지 알고 싶을 때
filter() : 조건을 만족하는 요소로만 새로운 배열을 만들고 싶을 때

1. Array.prototype.every()

  • 배열 순회 메소드
  • every()는 배열의 각 엘리먼트에 대해서 테스트 함수의 반환 값이 모두 true인지 확인한다.
  • 모든 case가 true일 때 true를 반환, 하나라도 false이면 false 반환.
  • 논리연산자 and와 유사하다.
  • 어떤 배열 메소드에서도 그랬 듯, 기존 배열 값은 변경되지 않는다.

array. every(functioin(currentValue, index, array), thisValue))

Parameter Description
function 배열의 각 값에 대해 실행할 함수 (총 3개 인자)
currentValue 배열 내에서 순차적으로 입력되는 엘리먼트
index(선택) 현재 엘리먼트의 배열 내 index
array(선택) 현재 엘리먼트가 속한 배열
thisValue(선택) 함수 내부에서 사용될 this에 대한 값
예제 1
function isBigEnough(element, index, array) {
  return element >= 10;
}
[12, 5, 8, 130, 44].every(isBigEnough); // false
[12, 54, 18, 130, 44].every(isBigEnough); // true

예제 2
const isSubset = (array1, array2) =>
  array2.every((element) => array1.includes(element));

console.log(isSubset([1, 2, 3, 4, 5, 6, 7], [5, 7, 6])); // true
console.log(isSubset([1, 2, 3, 4, 5, 6, 7], [5, 8, 7])); // false

2. Array.prototype.some()

  • 배열 순회 메소드
  • some()은 배열의 각 엘리먼트에 대해서 테스트 함수의 반환 값이 하나라도 true가 있는지 확인한다.
  • 하나라도 true가 발생하면 true 반환, 모두 false인 경우만 false 반환.
  • 논리연산자 or과 유사하다.
  • 역시나 배열 메소드가 그렇 듯 기존 배열 값은 변경되지 않는다.

array.some(function(currentValue, index, array), thisValue))

3. Array.prototype.find()

  • 배열 순회 메소드
  • find()는 배열에서 테스트 함수를 만족하는 첫 번쨰 요소를 반환한다.
  • 역시나 배열 메소드가 그렇 듯 기존 배열 값은 변경되지 않는다.하지만 find 내부에 비교 대상으로 들어가는 배열은 수정될 수 있으니 주의해야 한다.

array.find(function(element, index, array), thisArg))

4. Array.prototype.findIndex()

  • 배열 반복 메소드
  • 주어진 판별 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환
  • 없으면 -1 반환

array.findindex(function(currentValue, index, array), thisValue))

5. Array.prototype.includes()

  • 배열 순회 메소드
  • 배열의 항목에 특정한 값이 포함되어 있는지를 판단한다.
  • 판단 여부에 따라 true 혹은 false를 반환한다.
  • 역시나 배열 메소드가 그렇 듯 기존 배열 값은 변경되지 않는다.

array.includes(searchElement, formIndex)

  • searchElement : 찾을 값
  • fromIndex : 검색을 시작할 0 기반 인덱스(음수~0일 경우 배열 전체 검색), 정수로 변환. 단, fromIndex가 배열의 길이보다 크거나 같으면 false가 반환되며 배열 검색이 안된다.
  • 반환 값 : fromIndex에서 지정한 값, 또는 true/false

6. Array.prototype.filter()

  • 배열 순회 메소드
  • 복사 메서드
  • 주어진 배열의 일부에 대한 얕은 복사를 하고, 주어진 배열에서 제공된 함수를 통과한 요소로만 필터링한다.

array.filter(function(element, index, array), thisArg)

나의 의견

해당하는 메소드들은 배열 전체에서 조건과 하나라도 틀린 것을 골라내거나 하나라도 맞는 것을 골라낼 때 아주 잘 쓰일 수 있을 것 같다.

참고 링크
https://paperblock.tistory.com/67
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/every

profile
프론트엔드 개발과 디자인을 좋아합니다

0개의 댓글