[Javascript] Array.prototype.some(), Array.prototype.every()
Array.prototype.some() 은 확인할 list 내 원하는 조건을 만족하는 값이 하나라도 있을 경우 true 를 return
Array.prototype.every() 는 확인할 list 내 모든 값이 조건을 만족해야 true 를 return (하나라도 만족하지 못할 경우 false)
예시를 통해 이해하자면
const isBiggerObjInListThan = (list, compareValue) => {
console.log(`isBiggerObjInListThan ${compareValue} : ${list.some((item) => item.value > compareValue)}`);
};
const arr = [
{ name: "a", value: 1 },
{ name: "b", value: 2 },
{ name: "c", value: 3 },
{ name: "d", value: 4 },
{ name: "e", value: 5 },
];
isBiggerObjInListThan(arr, 3);
// 결과값
// isBiggerObjInListThan 3 : true
const isAllObjBiggerInListThan = (list, compareValue) => {
console.log(`isAllObjBiggerThan ${compareValue} : ${list.every((item) => item.value > compareValue)}`);
};
const arr = [
{ name: "a", value: 1 },
{ name: "b", value: 2 },
{ name: "c", value: 3 },
{ name: "d", value: 4 },
{ name: "e", value: 5 },
];
isAllObjBiggerInListThan(arr, 3);
// 결과값
// isAllObjBiggerThan 3 : false
const isAllObjBiggerInListThan = (list, compareValue) => {
console.log(`isAllObjBiggerThan ${compareValue} : ${list.every((item) => item.value > compareValue)}`);
};
const arr = [
{ name: "a", value: 1 },
{ name: "b", value: 2 },
{ name: "c", value: 3 },
{ name: "d", value: 4 },
{ name: "e", value: 5 },
];
isAllObjBiggerInListThan(arr, 0);
// 결과값
//isAllObjBiggerThan 0 : true
포함여부는 보통 includes() 를 쓰는데 찾아보니 includes() 로 가릴 수 있는 자료형은 Boolean, null, undefined, Number, String 정도라고 한다. 문제는 Object 내의 값이거나 Object 값을 서로 비교할 때인데 이럴 때 some 과 every를 사용하는 게 좋다고 한다.
d7k.medium.com/js-includes-vs-some-b3cd546a7bc3
JS .includes() vs .some()
JavaScript array is a powerful data structure in web technologies. Methods such as .map(), .filter(), .includes(),and .reduce() helps a…
d7k.medium.com
some 과 every 를 알기 전에는 미리 flag를 선언하고 for 문으로 돌려서 하나라도 걸릴 때 flag = true (혹은 false); break; 방식으로 쓰거나 filter, find로 뽑아서 Boolean 값을 가렸는데 이제는 some 이나 every를 쓰면 될 것 같다.