Responsive Advertisement

JavaScript์—์„œ ๋ฐฐ์—ด ๊ฒ€์ƒ‰ํ•˜๊ธฐ: ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๊ณผ ํ™œ์šฉ

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()๋Š” ์กฐ๊ฑด์— ๋งž๋Š” ์š”์†Œ๋ฅผ ์ฐพ์„ ๋•Œ ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ๋ฅผ ์ž˜ ํ™œ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰๊ณผ ์ฒ˜๋ฆฌ๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์—์„œ ํ•„์š”ํ•œ ๋ฐฐ์—ด ๊ฒ€์ƒ‰ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•ด ์œ ์—ฐํ•˜๊ณ  ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด๋ณด์„ธ์š”!

๋Œ“๊ธ€ ์“ฐ๊ธฐ