JavaScript

[JS] javascript(자바스크립트) - 배열 내부 원소 값(문자열) 체크하기 [every(), some() ]

민돌v 2021. 10. 19. 23:22

자바스크립트에서 배열 내의 요소를 확인할 때  every() 함수와 some() 함수 2가지를 제공합니다.

 Array Method는 배열의 요소들이 주어진 조건을 만족하는지 여부에 대한 검증을 수행합니다.

 

1) every,some - 특정 조건을 만족하는지 배열 내부의 원소를 순회하면서 검사한다.

2) 조건에 만족하면 True, 아니면 False를 리턴한다.

 


 

 

1. Array.prototype.every() - 전체가 만족해야 됨

  • 모든 case가 true일때 true를 반환합니다.
  • 순회를 하다 조건에 만족하지 않는 요소가 하나라도 발견되면, 그 즉시 순회를 멈춥니다.

 

예제1)

var objArr = [{name: '철수', age: 10}, {name: '영희', age: 10}, {name: '바둑이', age: 2}]

console.log(objArr.every((item)=> item.age>5)); //false (바둑이 탈락!)
console.log(objArr.every((item)=> item.age>1)); //true

 

예제2)

let data= [
            { name: "jack",  age: 20 }, 
            { name: "kevin", age: 16 }, 
            { name: "rick",  age: 27 }, 
            { name: "marry", age: 21 }, 
            { name: "rilly", age: 19 }
    ]
 
//배열 내부 객체를 순회 - age >= 20 검사
//내부 원소 모두 만족해야 True 출력
let result = data.every( x => { 
    return x.age >= 20
});
 
console.log(result);

 

 


 

2. Array.prototype.some() - 하나만 만족하면 됨

  • some()은 배열의 각 엘리먼트에 대해서 테스트 함수의 반환 값이 하나라도 true가 있는지 확인합니다.
  • 하나라도 true가 발생하면 true를 반환합니다.
  • 모두 false인 경우만 false를 반환합니다.
  • every가 and 조건이라면 some은 or 조건입니다.

 

예제1)

var objArr = [{name: '철수', age: 10},{name: '영희', age: 10}, {name: '바둑이', age: 2}]

console.log(objArr.some((item)=> item.age>5)); //true
console.log(objArr.some((item)=> item.age>10)); //false (모두 탈락!)

 

예제2)

let data= [
            { name: "jack",  age: 20 }, 
            { name: "kevin", age: 16 }, 
            { name: "rick",  age: 27 }, 
            { name: "marry", age: 21 }, 
            { name: "rilly", age: 19 }
    ]
 
//배열 내부 객체를 순회 - age >= 20 검사
//내부 원소 한 개라도 만족 True 출력
let result = data.some( x => { 
    return x.age >= 20
});
 
console.log(result);

 

 

 

*참고

https://niceman.tistory.com/78

https://paperblock.tistory.com/67