JavaScript์์ ๋ฐฐ์ด์ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ๋งค์ฐ ์ ์ฉํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋๋ค. ๋ฐฐ์ด์์ ํน์ ๊ฐ์ ์ฐพ๊ฑฐ๋ ์กฐ๊ฑด์ ๋ง๋ ์์๋ฅผ ๊ฒ์ํ๋ ์์ ์ ์์ฃผ ๋ฐ์ํฉ๋๋ค. JavaScript๋ ์ด๋ฌํ ๋ฐฐ์ด ๊ฒ์์ ์ํ ๋ค์ํ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ฉฐ, ๊ฐ ๋ฉ์๋๋ ์ํฉ์ ๋ง๊ฒ ์ ์ ํ ํ์ฉ๋ ์ ์์ต๋๋ค. ์ด ๊ธ์์๋ JavaScript์์ ๋ฐฐ์ด ๊ฒ์์ ์ํ ๋ค์ํ ๋ฐฉ๋ฒ์ ์๊ฐํ๊ณ , ๊ฐ ๋ฉ์๋์ ์ฌ์ฉ๋ฒ๊ณผ ์์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
1. indexOf()
: ๋ฐฐ์ด์์ ๊ฐ ์ฐพ๊ธฐ
indexOf()
๋ฉ์๋๋ ๋ฐฐ์ด์์ ํน์ ๊ฐ์ ์ฐพ์ ํด๋น ๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํฉ๋๋ค. ๊ฐ์ด ๋ฐฐ์ด์ ์กด์ฌํ์ง ์์ผ๋ฉด -1
์ ๋ฐํํฉ๋๋ค. ์ด ๋ฉ์๋๋ ๋ฐฐ์ด ์์ ๋จ์ ๊ฐ(์์ ๊ฐ)์ด ์๋์ง ํ์ธํ ๋ ์ ์ฉํฉ๋๋ค.
const fruits = ['apple', 'banana', 'cherry', 'date'];
const index = fruits.indexOf('banana');
console.log(index); // ๊ฒฐ๊ณผ: 1
const notFound = fruits.indexOf('grape');
console.log(notFound); // ๊ฒฐ๊ณผ: -1
์ ์์ ์์๋ indexOf()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ 'banana'์ ์ธ๋ฑ์ค๊ฐ 1
์์ ๋ฐํํ๋ฉฐ, ๋ฐฐ์ด์ ์กด์ฌํ์ง ์๋ 'grape'๋ -1
์ ๋ฐํํฉ๋๋ค.
2. lastIndexOf()
: ๋ฐฐ์ด์ ๋์์๋ถํฐ ๊ฐ ์ฐพ๊ธฐ
lastIndexOf()
๋ฉ์๋๋ ๋ฐฐ์ด์ ๋์์๋ถํฐ ๊ฐ์ ๊ฒ์ํ๊ณ , ํด๋น ๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํฉ๋๋ค. ์ค๋ณต๋ ๊ฐ์ด ์์ ๋ ๋ง์ง๋ง ์ธ๋ฑ์ค๋ฅผ ์ฐพ๊ณ ์ ํ ๋ ์ ์ฉํฉ๋๋ค.
const numbers = [1, 2, 3, 1, 2, 3];
const lastIndex = numbers.lastIndexOf(2);
console.log(lastIndex); // ๊ฒฐ๊ณผ: 4
์ ์์ ์์๋ ๊ฐ 2
๊ฐ ๋ฐฐ์ด์ ์ฌ๋ฌ ์์น์ ์กด์ฌํ์ง๋ง, lastIndexOf()
๋ ๋์์๋ถํฐ ๊ฒ์ํ์ฌ ๋ง์ง๋ง ์์น์ ์ธ๋ฑ์ค 4
๋ฅผ ๋ฐํํฉ๋๋ค.
3. find()
: ์กฐ๊ฑด์ ๋ง๋ ์ฒซ ๋ฒ์งธ ์์ ์ฐพ๊ธฐ
find()
๋ฉ์๋๋ ๋ฐฐ์ด์์ ์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ง๋ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ๋ฐํํฉ๋๋ค. ํจ์ ๋ด์์ ์กฐ๊ฑด์ ์ค์ ํ ์ ์์ผ๋ฉฐ, ์กฐ๊ฑด์ ๋ง๋ ์์๊ฐ ์์ผ๋ฉด undefined
๋ฅผ ๋ฐํํฉ๋๋ค.
const users = [
{ name: 'John', age: 25 },
{ name: 'Jane', age: 22 },
{ name: 'Mike', age: 32 }
];
const user = users.find(user => user.age > 30);
console.log(user); // ๊ฒฐ๊ณผ: { name: 'Mike', age: 32 }
์ ์์ ์์๋ ๋์ด๊ฐ 30์ด ๋๋ ์ฒซ ๋ฒ์งธ ์ฌ์ฉ์๋ฅผ ์ฐพ๊ธฐ ์ํด find()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์กฐ๊ฑด์ ๋ง๋ ์ฒซ ๋ฒ์งธ ์์์ธ { name: 'Mike', age: 32 }
๊ฐ ๋ฐํ๋ฉ๋๋ค.
4. findIndex()
: ์กฐ๊ฑด์ ๋ง๋ ์์์ ์ธ๋ฑ์ค ์ฐพ๊ธฐ
findIndex()
๋ฉ์๋๋ ๋ฐฐ์ด์์ ์กฐ๊ฑด์ ๋ง๋ ์ฒซ ๋ฒ์งธ ์์์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํฉ๋๋ค. ์กฐ๊ฑด์ ๋ง๋ ์์๊ฐ ์์ผ๋ฉด -1
์ ๋ฐํํฉ๋๋ค.
const numbers = [5, 12, 8, 130, 44];
const index = numbers.findIndex(num => num > 100);
console.log(index); // ๊ฒฐ๊ณผ: 3
์ ์์ ์์๋ findIndex()
๋ฅผ ์ฌ์ฉํ์ฌ 100๋ณด๋ค ํฐ ์ฒซ ๋ฒ์งธ ์ซ์์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์์ต๋๋ค. ํด๋น ์กฐ๊ฑด์ ๋ง๋ ์ฒซ ๋ฒ์งธ ์์๋ 130
์ด๋ฉฐ, ๊ทธ ์ธ๋ฑ์ค๋ 3
์
๋๋ค.
5. includes()
: ๋ฐฐ์ด์ ๊ฐ์ด ํฌํจ๋์ด ์๋์ง ํ์ธ
includes()
๋ฉ์๋๋ ๋ฐฐ์ด์ ํน์ ๊ฐ์ด ํฌํจ๋์ด ์๋์ง ์ฌ๋ถ๋ฅผ ๋ถ๋ฆฌ์ธ ๊ฐ์ผ๋ก ๋ฐํํฉ๋๋ค. ๊ฐ์ด ์์ผ๋ฉด true
, ์์ผ๋ฉด false
๋ฅผ ๋ฐํํฉ๋๋ค.
const fruits = ['apple', 'banana', 'cherry'];
const hasBanana = fruits.includes('banana');
console.log(hasBanana); // ๊ฒฐ๊ณผ: true
const hasGrape = fruits.includes('grape');
console.log(hasGrape); // ๊ฒฐ๊ณผ: false
includes()
๋ ํน์ ๊ฐ์ด ๋ฐฐ์ด์ ํฌํจ๋์ด ์๋์ง ์ฝ๊ฒ ํ์ธํ ์ ์์ต๋๋ค. ์ ์์ ์์๋ 'banana'๋ ๋ฐฐ์ด์ ์กด์ฌํ์ง๋ง, 'grape'๋ ์กด์ฌํ์ง ์์์ ํ์ธํ ์ ์์ต๋๋ค.
6. filter()
: ์กฐ๊ฑด์ ๋ง๋ ๋ชจ๋ ์์ ์ฐพ๊ธฐ
filter()
๋ฉ์๋๋ ๋ฐฐ์ด์์ ์กฐ๊ฑด์ ๋ง๋ ๋ชจ๋ ์์๋ฅผ ์ฐพ์ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ฐํํฉ๋๋ค. ์กฐ๊ฑด์ ๋ง๋ ์์๊ฐ ํ๋๋ ์์ผ๋ฉด ๋น ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค.
const users = [
{ name: 'John', age: 25 },
{ name: 'Jane', age: 22 },
{ name: 'Mike', age: 32 },
{ name: 'Sara', age: 32 }
];
const olderUsers = users.filter(user => user.age > 30);
console.log(olderUsers);
// ๊ฒฐ๊ณผ: [{ name: 'Mike', age: 32 }, { name: 'Sara', age: 32 }]
filter()
๋ฉ์๋๋ ์กฐ๊ฑด์ ๋ง๋ ๋ชจ๋ ์์๋ฅผ ๋ฐฐ์ด๋ก ๋ฐํํฉ๋๋ค. ์ ์์ ์์๋ ๋์ด๊ฐ 30์ ๋๋ ๋ชจ๋ ์ฌ์ฉ์๋ฅผ ์ฐพ์ ๋ฐฐ์ด๋ก ๋ฐํํ์ต๋๋ค.
7. some()
๋ฐ every()
: ๋ฐฐ์ด์์ ์กฐ๊ฑด ์ถฉ์กฑ ์ฌ๋ถ ํ์ธ
some()
๋ฉ์๋๋ ๋ฐฐ์ด์์ ํ๋ ์ด์์ ์์๊ฐ ์ฃผ์ด์ง ์กฐ๊ฑด์ ์ถฉ์กฑํ๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ์ฌ true
๋๋ false
๋ฅผ ๋ฐํํฉ๋๋ค. ๋ฐ๋๋ก every()
๋ฉ์๋๋ ๋ฐฐ์ด์ ๋ชจ๋ ์์๊ฐ ์กฐ๊ฑด์ ์ถฉ์กฑํด์ผ true
๋ฅผ ๋ฐํํฉ๋๋ค.
const numbers = [1, 2, 3, 4, 5];
// ๋ฐฐ์ด ์ค ํ๋๋ผ๋ ์ง์๊ฐ ์๋์ง ํ์ธ
const hasEven = numbers.some(num => num % 2 === 0);
console.log(hasEven); // ๊ฒฐ๊ณผ: true
// ๋ฐฐ์ด์ ๋ชจ๋ ์์๊ฐ ์์์ธ์ง ํ์ธ
const allPositive = numbers.every(num => num > 0);
console.log(allPositive); // ๊ฒฐ๊ณผ: true
some()
์ ๋ฐฐ์ด์์ ์ ์ด๋ ํ๋์ ์์๊ฐ ์กฐ๊ฑด์ ๋ง์กฑํ๋์ง ํ์ธํ๊ณ , every()
๋ ๋ชจ๋ ์์๊ฐ ์กฐ๊ฑด์ ๋ง์กฑํ๋์ง ํ์ธํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
๊ฒฐ๋ก
JavaScript์์ ๋ฐฐ์ด ๊ฒ์์ ์ํ ๋ค์ํ ๋ฉ์๋๋ ๊ฐ๊ธฐ ๋ค๋ฅธ ์ํฉ์์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. indexOf()
์ includes()
๋ ๋ฐฐ์ด์ ํน์ ๊ฐ์ด ์กด์ฌํ๋์ง ํ์ธํ ๋, find()
์ filter()
๋ ์กฐ๊ฑด์ ๋ง๋ ์์๋ฅผ ์ฐพ์ ๋ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฌํ ๋ฐฐ์ด ๋ฉ์๋๋ฅผ ์ ํ์ฉํ๋ฉด ๋ฐ์ดํฐ ๊ฒ์๊ณผ ์ฒ๋ฆฌ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ํ ์ ์์ต๋๋ค. ํ๋ก์ ํธ์์ ํ์ํ ๋ฐฐ์ด ๊ฒ์ ๋ฐฉ๋ฒ์ ์ ํํด ์ ์ฐํ๊ณ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ๊ตฌํํด๋ณด์ธ์!
๋๊ธ ์ฐ๊ธฐ