JavaScript 배열 메서드 - 일부 및 모두

오늘은 .some().every() 에 대해 말씀드리겠습니다. 이중 지식. 나는 이것을 .map() 또는 .filter()만큼 자주 사용하지는 않지만 특정 시나리오에서 매우 유용합니다. 결과적으로 둘 다 부울 값을 반환하기 때문에 이러한 방법을 함께 그룹화했습니다. 따라서 함께 배우는 것이 합리적이었습니다. 게다가 그들은 매우 짧습니다.

Array.prototype.some()



지금까지 이야기한 다른 방법과 마찬가지로 .some()도 함수를 인수로 사용합니다(일명 콜백). .some() 메서드는 테스트를 통과한 배열의 첫 번째 값/요소에 대해 true를 반환하고 그렇지 않은 경우 false를 반환합니다.

예제에서 typeof 연산자를 사용하겠습니다. 이 연산자는 데이터 유형이 무엇인지 알려주는 문자열을 반환합니다.

예시:

let stoppingIndex;

const arrOfDataTypes = ["this is a string", 
  93, 
  false, 
  72n, 
  true,
  false,
  {
    name: "Tanwa", 
    hobby: ["coding", "gaming"]
  }
]

function callbackCheckBool(a) {
  return typeof a === 'boolean';
}

console.log(arrOfDataTypes.some( (element, index) => {
  stoppingIndex = index;
  return callbackCheckBool(element);
  }));
// true

console.log(stoppingIndex); // 2

console.log(arrOfDataTypes.some( element => typeof element === 'undefined'));
// false


위의 예에서 배열에 데이터 유형'boolean'인 일부 값/요소가 있는지 확인하고 싶었습니다. 배열에는 인덱스에서 부울 유형인 요소true가 포함되어 있기 때문에 이 값"false"이 반환됩니다. 2 여기서 .some() 메서드가 중지되었습니다. 두 번째 .some() 테스트에서는 'undefined' 데이터 유형을 확인합니다. 배열에 반환된 값 유형이 false 없기 때문입니다.

Array.prototype.every()



배열의 모든 값/요소가 콜백 함수 테스트를 통과하는 경우에만 .every() 메서드가 true를 반환한다고 추측하면 정답이 됩니다! .every().some()의 반대라고 생각합니다. 한 요소가 테스트에 실패하는 즉시 false를 반환하기 때문입니다.

예시:

const arrOfStrings = ["How", "long", "is", "a", "piece", "of", "string?", 1];

const arrOfTwos = [2,2,2,2,2];

console.log(arrOfStrings.every( element => typeof element === 'string')); // false

console.log(arrOfTwos.every( element => element === 2)); // true


위의 예가 간단하기를 바랍니다. 배열의 모든 값/요소가 유형'string'인지 확인했지만 마지막에 비열한 숫자false 때문에 이 반환 값1이 있습니다! 그리고 두 번째.every() 테스트에서는 모든 요소가 테스트를 통과하여 true를 반환합니다.

요약


.some() 메서드는 콜백 함수 테스트를 통과한 배열의 첫 번째 값/요소를 확인하고 true를 반환하고, 테스트를 통과한 값을 찾지 못하면 false를 반환합니다. .every() 메서드는 콜백 함수 테스트에 실패한 배열의 첫 번째 값/요소를 확인하고 false를 반환하거나 모든 값이 테스트를 통과하면 true를 반환합니다.

여기까지 읽어주셔서 감사하고, 제가 잘못 이해한 부분이 있으면 언제나 댓글과 피드백 부탁드립니다.

좋은 웹페이지 즐겨찾기