๋ฐ˜์‘ํ˜•

๐Ÿ”ฐ

 

โœ… every(), some()

JavaScript์—์„œ every์™€ some์€ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ ๋˜๋Š” ์ผ๋ถ€ ์š”์†Œ์— ๋Œ€ํ•ด ์–ด๋–ค ๊ฒƒ์ด ์ฐธ์ธ์ง€์— ๋Œ€ํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

โœ… every()

const nums = [34, 2, 48, 91, 12, 32];

๋‹ค์Œ๊ณผ ๊ฐ™์ด nums ๋ฐฐ์—ด์ด ์žˆ์„ ๋•Œ, every๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

nums.every(n => n < 100);
// true

(nums์˜ ๋ชจ๋“  ๊ฐ’์ด 100๋ณด๋‹ค ์ž‘๊ธฐ์— ๊ฒฐ๊ณผ๊ฐ’์€ true์ด๋‹ค.)

 

every๋Š” ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ˆœํšŒํ•˜๋ฉฐ ๊ฒ€์‚ฌํ•œ๋‹ค.

  • ๊ฐ iteration์—์„œ, ํŠน์ • ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ˜„์žฌ element์™€ ๋น„๊ตํ•˜๊ณ  ์ฐธ / ๊ฑฐ์ง“์ธ์ง€ ํŒ๋‹จํ•œ๋‹ค.
  • ํŠน์ • ํ•จ์ˆ˜์—์„œ false๊ฐ€ ์ฐพ์•„ ์งˆ ๋•Œ ๊นŒ์ง€ ๋ฃจํ”„๋ฅผ ๋ˆ๋‹ค. ์ด๋•Œ ํ•˜๋‚˜๋ผ๋„ false๋ฉด every์˜ return๊ฐ’์€ false์ด๋‹ค.
    ๊ทธ๊ฒŒ ์•„๋‹ˆ๋ผ๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.  

 

arr.every(function(currentValue, index, array), thisValue))

callbackFn
๊ฐ ์š”์†Œ๋ฅผ ์‹œํ—˜ํ•  ํ•จ์ˆ˜. ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ์ธ์ˆ˜๋ฅผ ๋ฐ›๋Š”๋‹ค.

  • element
    ๋ฐฐ์—ด์—์„œ ์ฒ˜๋ฆฌ๋˜๋Š” ํ˜„์žฌ ์š”์†Œ
  • index
    ์ฒ˜๋ฆฌํ•  ํ˜„์žฌ ์š”์†Œ์˜ ์ธ๋ฑ์Šค
  • array
    every๋ฅผ ํ˜ธ์ถœํ•œ ๋ฐฐ์—ด
  • thisArg Optional
    callbackFn์„ ์‹คํ–‰ํ•  ๋•Œ this๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’.

 

const isBelowThreshold = (currentValue) => currentValue < 40;

const array1 = [1, 30, 39, 29, 10, 13];

console.log(array1.every(isBelowThreshold)); // true

์œ„ ์˜ˆ์‹œ์ฒ˜๋Ÿผ every() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด ๋‚ด ๋ชจ๋“  ์š”์†Œ๊ฐ€ true ์ผ ๊ฒฝ์šฐ true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋ฐฐ์—ด ๋‚ด ์š”์†Œ ์ค‘ ํ•˜๋‚˜๋ผ๋„ false ์ผ ์‹œ false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

 

โœ… some()

 

const nums = [34, 2, 48, 91, 12, 32];

๋‹ค์Œ๊ณผ ๊ฐ™์ด nums ๋ฐฐ์—ด์ด ์žˆ์„ ๋•Œ, every๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

nums.some(n => n % 2 == 1);
// true

(nums์˜ ํŠน์ • ๊ฐ’ 91์ด ํ™€์ˆ˜ ์ด๊ธฐ์— ๋ฆฌํ„ด ๊ฐ’์€ true์ด๋‹ค.)

 

some๋„ every์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ˆœํšŒํ•˜๋ฉฐ ๊ฒ€์‚ฌํ•œ๋‹ค.

  • ๊ฐ iteration์—์„œ, ํŠน์ • ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ˜„์žฌ element์™€ ๋น„๊ตํ•˜๊ณ  ์ฐธ / ๊ฑฐ์ง“์ธ์ง€ ํŒ๋‹จํ•œ๋‹ค.
  • ํŠน์ • ํ•จ์ˆ˜์—์„œ true๊ฐ€ ์ฐพ์•„ ์งˆ ๋•Œ ๊นŒ์ง€ ๋ฃจํ”„๋ฅผ ๋ˆ๋‹ค. ์ด๋•Œ ํ•˜๋‚˜๋ผ๋„ true๋ฉด some์˜ return๊ฐ’์€ true์ด๋‹ค.
    ๊ทธ๊ฒŒ ์•„๋‹ˆ๋ผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

 

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

callback
๊ฐ ์š”์†Œ๋ฅผ ์‹œํ—˜ํ•  ํ•จ์ˆ˜. ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ์ธ์ˆ˜๋ฅผ ๋ฐ›๋Š”๋‹ค.
currentValue : ์ฒ˜๋ฆฌํ•  ํ˜„์žฌ ์š”์†Œ.

  • index Optional
    ์ฒ˜๋ฆฌํ•  ํ˜„์žฌ ์š”์†Œ์˜ ์ธ๋ฑ์Šค.
  • array Optional
    some์„ ํ˜ธ์ถœํ•œ ๋ฐฐ์—ด.
  • thisArg Optional
    callback์„ ์‹คํ–‰ํ•  ๋•Œ this๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’.

 

function isBiggerThan10(element, index, array) {
  return element > 10;
}
[2, 5, 8, 1, 4].some(isBiggerThan10);  // false
[12, 5, 8, 1, 4].some(isBiggerThan10); // true

์œ„ ์˜ˆ์‹œ์ฒ˜๋Ÿผ some() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด ๋‚ด ๋ชจ๋“  ์š”์†Œ๊ฐ€ false ์ผ ๊ฒฝ์šฐ false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋ฐฐ์—ด ๋‚ด ์š”์†Œ๊ฐ€ ํ•˜๋‚˜๋ผ๋„ true์ผ ์‹œ true ๋ฐ˜ํ™˜.

๋ฐ˜์‘ํ˜•