๐ฐ
โ 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 ๋ฐํ.
'Basic > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javasciprt] Spread Operator ์ ๊ฐ ์ฐ์ฐ์ ... (0) | 2023.03.03 |
---|---|
[Javascript] Copy clipboard ๊ตฌํํ๊ธฐ (0) | 2023.02.15 |
VSCode ์ ์ฅ ์ ์๋์ ๋ ฌ ์ค์ (with Prettier) (0) | 2022.11.27 |
about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)๋ฅผ ์ฐธ์กฐํ์ญ์์ค. ์๋ฌ ํด๊ฒฐ (0) | 2022.11.26 |
[Javascript] ๊ณ์ฐ๋ ํ๋กํผํฐ ์ด๋ฆ (0) | 2022.11.15 |