[javascript] ๋ฐฐ์ด ๋ฐ ๊ฐ์ฒด ๋ด ์ํ๋ ๊ฐ์ด ์์ผ๋ฉด True some()๋ฉ์๋, Array.prototype.some()
javscript์์ ์ด๋ค ๋ฐฐ์ด์ ํน์ ๊ธ์๊ฐ ์๋ค๋ฉด true๋ฅผ ๋ฐํํ๋ ๋ก์ง์ ์ง๊ณ ์์๋ค.
๋๋ for๋ฌธ์ ์ด์ฉํด์ ๊ฒ์ฌ๋ฅผ ํ์๋ค.
const fruit = ['apple', 'orange', 'banana', 'watermelon'];
let isB = false;
for (let i = 0; i < fruit.length; i++) {
if (fruit[i].includes("b")) {
isB = true;
break; // ํ๋๋ผ๋ ํฌํจํ๋ฉด ๋ ์ด์ ๋ฐ๋ณตํ ํ์๊ฐ ์์ผ๋ฏ๋ก ์ค๋จ
}
}
console.log(isB); // true
๊ทผ๋ฐ Array.prototype.some()๋ผ๋ ๋ฉ์๋๋ฅผ ์๊ฒ ๋๋ค.
์ด ๋ฉ์๋๋ฅผ ์ด์ฉํ๋ฉด ์ฝ๋๊ฐ ๋ ๊ฐ๊ฒฐํด์ง๋ค.
๊ธฐ๋ณธ ๊ฐ๋
๋ชฉ์ → ๋ฐฐ์ด์ ์์ ์ค ํ๋๋ผ๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด true๋ฅผ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํํ๋ค.
ํ์→ array.some(callback)
array.some(callback(element[, index[, array]])[, thisArg])
- callback: ๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด ํธ์ถํ ํจ์์
๋๋ค. ๋ค์ ์ธ ๊ฐ์ง ์ธ์๋ฅผ ๋ฐ์ต๋๋ค:
- element: ๋ฐฐ์ด์ ํ์ฌ ์์.
- index (์ ํ์ฌํญ): ๋ฐฐ์ด์ ํ์ฌ ์์์ ์ธ๋ฑ์ค.
- array (์ ํ์ฌํญ): some ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ฐฐ์ด ์์ฒด.
- thisArg (์ ํ์ฌํญ): ์ฝ๋ฐฑ์ ์คํํ ๋ this๋ก ์ฌ์ฉํ ๊ฐ์ ๋๋ค.
fruit์ด๋ผ๋ ๋ฐฐ์ด ์์ b๋ผ๋ ๊ธ์๊ฐ ํฌํจ ๋์ด์๋์ง ๊ฒ์ฌํ๋ ์ฝ๋
const fruit = ['apple', 'orange', 'banana', 'watermelon'];
const isB = fruit.some(fruit => fruit.includes("b"));
console.log(isB); // true
๊ทธ๋์ ์์ for๋ฌธ์ ์ด๋ ๊ฒ ๊ฐ๊ฒฐํ๊ฒ ์ ๋ฆฌํ ์ ์์๋ค.
๋ฌธ์์ด ๋ฐฐ์ด์์ ๊ธธ์ด๊ฐ 5 ์ด์์ธ ๋ฌธ์์ด์ด ํ๋๋ผ๋ ์๋์ง ๊ฒ์ฌํ๋ ์ฝ๋
const words = ["apple", "banana", "cherry", "date"];
const hasLongWord = words.some((word) => word.length >= 5);
console.log(hasLongWord); // true
์ซ์ ๋ฐฐ์ด์์ ์ง์๊ฐ ํ๋๋ผ๋ ์๋์ง ๊ฒ์ฌํ๋ ์ฝ๋
const numbers = [1, 3, 5, 7, 8];
const hasEvenNumber = numbers.some((number) => number % 2 === 0);
console.log(hasEvenNumber); // true