arr.every()
11317 단어 JavaScriptJavaScript
💡 arr.every()
: 배열 안의 모든 요소가 주어진 판별 함수를 통과하는지 테스트, Boolean 값을 반환
💜 구문
arr.some(callback[, thisArg])
- 매개변수
- callbackFn
: 각 요소를 시험할 함수, 아래의 세 인자를 받음
- currentValue
: 처리할 현재 요소
- index
: optional
: 처리할 현재 요소의 인덱스
- array
: optional
: every 을 호출한 배열
- thisArg
: optional
: callbackFn 을 실행할 때 this로 사용하는 값
- Return 값
: callbackFn 이 모든 배열 요소에 대해 참인(truthy) 값을 반환하는 경우 true, 그 외엔 false
💜 특성
- every() 는 callback 이 거짓을 반환하는 요소를 찾을 때까지 배열에 있는 각 요소에 대해 한 번씩 callbackFn 함수를 실행
- 해당하는 요소를 발견한 경우 every 는 즉시 false 를 반환, 그렇지 않으면, 즉 모든 값에서 참을 반환하면 true를 반환
- 빈 배열에서 호출하면 무조건 true를 반환
- 할당한 값이 있는 배열의 인덱스에서만 callbackFn을 호출하며, 삭제했거나 값을 할당한 적이 없는 인덱스에서는 호출하지 않음
- callback 은 다음의 세 인수와 함께 호출
- 요소 값
- 요소 인덱스
- 순회하고 있는 배열
- every() 는 호출한 배열을 변형하지 않음
- every()가 처리하는 요소의 범위는 callbackFn 의 첫 호출 전에 설정
- every 호출 이후로 배열에 추가하는 요소는 callbackFn 이 방문하지 않음
- 배열에 존재하는 요소가 변경된 경우, callbackFn 에 every()가 방문하는 시점의 값을 전달
- 삭제한 요소는 방문하지 않음
💜 예시
- 예시 1. 모든 배열 요소의 크기 테스트
const arr1 = [2, 5, 8, 1, 4];
const arr2 = [12, 25, 48, 100, 45];
console.log(arr1.every(x => x > 10)); // false
console.log(arr2.every(x => x > 10)); // true
- 예시 2. 초기 배열에 영향주기(수정, 추가, 삭제)
// 요소 수정
let arr = [1, 2, 3, 4];
arr.every( (el, idx, arr) => {
arr[idx+1] -= 1
console.log(`[${arr}][${idx}] -> ${el}`)
return el < 2
})
// [1,1,3,4][0] -> 1
// [1,1,2,4][1] -> 1
// [1,1,2,3][2] -> 2
// 요소 추가
let arr = [1, 2, 3];
arr.every( (el, idx, arr) => {
arr.push('new')
console.log(`[${arr}][${idx}] -> ${el}`)
return el < 4
})
// [1,2,3,new][0] -> 1
// [1,2,3,new,new][1] -> 2
// [1,2,3,new,new,new][2] -> 3
// 요소 삭제
let arr = [1, 2, 3, 4];
arr.every( (el, idx, arr) => {
arr.pop()
console.log(`[${arr}][${idx}] -> ${el}`)
return el < 4
})
// [1,2,3][0] -> 1
// [1,2][1] -> 2
Author And Source
이 문제에 관하여(arr.every()), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@sylph0105/arr.every
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
arr.some(callback[, thisArg])
: 각 요소를 시험할 함수, 아래의 세 인자를 받음
- currentValue
: 처리할 현재 요소 - index
: optional
: 처리할 현재 요소의 인덱스 - array
: optional
: every 을 호출한 배열
: optional
: callbackFn 을 실행할 때 this로 사용하는 값
: callbackFn 이 모든 배열 요소에 대해 참인(truthy) 값을 반환하는 경우 true, 그 외엔 false
- 요소 값
- 요소 인덱스
- 순회하고 있는 배열
- every 호출 이후로 배열에 추가하는 요소는 callbackFn 이 방문하지 않음
- 배열에 존재하는 요소가 변경된 경우, callbackFn 에 every()가 방문하는 시점의 값을 전달
- 삭제한 요소는 방문하지 않음
const arr1 = [2, 5, 8, 1, 4];
const arr2 = [12, 25, 48, 100, 45];
console.log(arr1.every(x => x > 10)); // false
console.log(arr2.every(x => x > 10)); // true
// 요소 수정
let arr = [1, 2, 3, 4];
arr.every( (el, idx, arr) => {
arr[idx+1] -= 1
console.log(`[${arr}][${idx}] -> ${el}`)
return el < 2
})
// [1,1,3,4][0] -> 1
// [1,1,2,4][1] -> 1
// [1,1,2,3][2] -> 2
// 요소 추가
let arr = [1, 2, 3];
arr.every( (el, idx, arr) => {
arr.push('new')
console.log(`[${arr}][${idx}] -> ${el}`)
return el < 4
})
// [1,2,3,new][0] -> 1
// [1,2,3,new,new][1] -> 2
// [1,2,3,new,new,new][2] -> 3
// 요소 삭제
let arr = [1, 2, 3, 4];
arr.every( (el, idx, arr) => {
arr.pop()
console.log(`[${arr}][${idx}] -> ${el}`)
return el < 4
})
// [1,2,3][0] -> 1
// [1,2][1] -> 2
Author And Source
이 문제에 관하여(arr.every()), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sylph0105/arr.every저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)