๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Language/Javascript

[Javascript]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์—ด ์™„๋ฒฝ ๊ฐ€์ด๋“œ: ๋ฐฐ์—ด ๋ฉ”์†Œ๋“œ์™€ ํ™œ์šฉ๋ฒ• ์ด์ •๋ฆฌ

by YJ Dev 2024. 6. 21.
728x90
๋ฐ˜์‘ํ˜•
SMALL

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ฐฐ์—ด ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ์ค‘์š”ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์—ด ํ•จ์ˆ˜๋“ค์„ ์ •๋ฆฌํ•˜๊ณ , ๊ฐ๊ฐ์˜ ํ•จ์ˆ˜๊ฐ€ ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์œ ์šฉํ•œ์ง€์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์—ด


์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์—ด์€ ์ฐธ์กฐ ์ž๋ฃŒํ˜•์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•(primitive types)๊ณผ ์ฐธ์กฐ ์ž๋ฃŒํ˜•(reference types)์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ์‹์— ๋”ฐ๋ผ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž๋ฃŒํ˜•์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”๐Ÿ˜

""

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ]์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž๋ฃŒํ˜• ๊ฐ€์ด๋“œ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž๋ฃŒํ˜•์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ์ดˆ์ด์ž ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋‹ค์–‘ํ•œ ์ž๋ฃŒํ˜•์„ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ฌํ™”๊นŒ์ง€ ์ž์„ธํžˆ ๋‹ค๋ฃน๋‹ˆ๋‹ค.โ‰ฃ ๋ชฉ์ฐจ์ž๋ฃŒํ˜•์˜

creativevista.tistory.com


01. JavaScript ๋ฐฐ์—ด์ด๋ž€?๐Ÿค”

๋ฐฐ์—ด์˜ ์ •์˜์™€ ๊ธฐ๋ณธ ๊ฐœ๋…

JavaScript์—์„œ ๋ฐฐ์—ด์€ ๊ฐ™์€ ํƒ€์ž… ๋˜๋Š” ๋‹ค๋ฅธ ํƒ€์ž…์˜ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๊ณณ์— ๋ชจ์•„๋‘” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋ฐฐ์—ด์€ ์ผ๋ จ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ดํ•˜๊ณ , ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ๊ฐ ์š”์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค๋‹ˆ๋‹ค. ๋ฐฐ์—ด์€ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ๋„ ํ”ํžˆ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ, JavaScript์—์„œ๋Š” ํŠนํžˆ ๋งŽ์ด ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ์—ด์€ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋ฉฐ, ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

JavaScript ๋ฐฐ์—ด์˜ ํŠน์ง•

  • ๋™์  ํฌ๊ธฐ: JavaScript ๋ฐฐ์—ด์€ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ์ง€ ์•Š๊ณ , ํ•„์š”์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ํฌ๊ธฐ๊ฐ€ ๋ณ€ํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ค์–‘ํ•œ ํƒ€์ž… ํ—ˆ์šฉ: JavaScript ๋ฐฐ์—ด์€ ์ˆซ์ž, ๋ฌธ์ž์—ด, ๊ฐ์ฒด ๋“ฑ ๋‹ค์–‘ํ•œ ํƒ€์ž…์˜ ์š”์†Œ๋ฅผ ํ•จ๊ป˜ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐฐ์—ด ๋ฉ”์†Œ๋“œ: ๋ฐฐ์—ด์€ ๋‹ค์–‘ํ•œ ๋‚ด์žฅ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

02. ๋ฐฐ์—ด ์ƒ์„ฑ ๋ฐฉ๋ฒ•๐ŸŽจ

๋ฐฐ์—ด ๋ฆฌํ„ฐ๋Ÿด์„ ์‚ฌ์šฉํ•œ ์ƒ์„ฑ

๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฐ์—ด ์ƒ์„ฑ ๋ฐฉ๋ฒ•์€ ๋ฐฐ์—ด ๋ฆฌํ„ฐ๋Ÿด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋Œ€๊ด„ํ˜ธ []๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๊ณ , ๊ฐ ์š”์†Œ๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.


  
let fruits = ['Apple', 'Banana', 'Cherry'];

Array ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ ์ƒ์„ฑ

Array ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ๋ฐฐ์—ด์˜ ์ดˆ๊ธฐ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


  
let numbers = new Array(3); // ๊ธธ์ด๊ฐ€ 3์ธ ๋นˆ ๋ฐฐ์—ด ์ƒ์„ฑ
let moreFruits = new Array('Mango', 'Peach', 'Pineapple');

Array.of()์™€ Array.from() ๋ฉ”์„œ๋“œ

  • Array.of() ๋ฉ”์†Œ๋“œ๋Š” ์ „๋‹ฌ๋œ ์ธ์ˆ˜๋ฅผ ์š”์†Œ๋กœ ๊ฐ–๋Š” ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  
let arrayOfNumbers = Array.of(1, 2, 3);
  • Array.from() ๋ฉ”์†Œ๋“œ๋Š” ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด๋‚˜ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  
let arrayFromString = Array.from('hello'); // ['h', 'e', 'l', 'l', 'o']

03. ๋ฐฐ์—ด ์š”์†Œ ์ ‘๊ทผ ๋ฐ ์กฐ์ž‘๐Ÿ› ๏ธ

๋ฐฐ์—ด ์š”์†Œ ์ ‘๊ทผ ๋ฐฉ๋ฒ• (์ธ๋ฑ์Šค ์‚ฌ์šฉ)

๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


  
let fruits = ['Apple', 'Banana', 'Cherry'];
console.log(fruits[0]); // 'Apple'
console.log(fruits[1]); // 'Banana'

๋ฐฐ์—ด ์š”์†Œ ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ

push(): ๋งˆ์ง€๋ง‰ ์š”์†Œ ์ถ”๊ฐ€

  • push(): ํ•จ์ˆ˜๋Š” ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰์— ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ถ”๊ฐ€ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

  
let fruits = ['Apple', 'Banana', 'Cherry'];
fruits.push('Mango'); // ['Apple', 'Banana', 'Cherry', 'Mango']

pop(): ๋งˆ์ง€๋ง‰ ์š”์†Œ ์‚ญ์ œ

  • pop(): ํ•จ์ˆ˜๋Š” ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ตœ๊ทผ์— ์ถ”๊ฐ€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

  
let fruits = ['Apple', 'Banana', 'Cherry'];
fruits.pop(); // ['Apple', 'Banana']

unshift(): ์ฒซ ๋ฒˆ์งธ ์š”์†Œ ์ถ”๊ฐ€

  • unshift(): ํ•จ์ˆ˜๋Š” ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ์— ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์ตœ์šฐ์„ ์œผ๋กœ ์ถ”๊ฐ€ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

  
let fruits = ['Apple', 'Banana', 'Cherry'];
fruits.unshift('Strawberry'); // ['Strawberry', 'Apple', 'Banana', 'Cherry']

shift(): ์ฒซ ๋ฒˆ์งธ ์š”์†Œ ์‚ญ์ œ

  • shift(): ํ•จ์ˆ˜๋Š” ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

  
let fruits = ['Apple', 'Banana', 'Cherry'];
fruits.shift(); // ['Banana', 'Cherry']

๋ฐฐ์—ด ์š”์†Œ ์ˆ˜์ •

๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ํ•ด๋‹น ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


  
let fruits = ['Apple', 'Banana', 'Cherry'];
fruits[1] = 'Blueberry'; // ['Apple', 'Blueberry', 'Cherry']

๋ฐฐ์—ด ๋ณต์‚ฌ ๋ฐ ํ™•์žฅ (...)

Spread Operator(...)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ์‰ฝ๊ฒŒ ๋ณต์‚ฌํ•˜๊ณ  ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ค ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.


  
let fruits = ['์‚ฌ๊ณผ', '๋ฐ”๋‚˜๋‚˜', '์ฒด๋ฆฌ'];
let copiedFruits = [...fruits];
console.log(copiedFruits); // ['์‚ฌ๊ณผ', '๋ฐ”๋‚˜๋‚˜', '์ฒด๋ฆฌ']

04. ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ๐Ÿ“š

forEach(): ๋ฐฐ์—ด ์ˆœํšŒ

forEach() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ฃผ์–ด์ง„ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.


  
let fruits = ['Apple', 'Banana', 'Cherry'];
fruits.forEach(function(fruit) {
console.log(fruit);
});

map(): ๋ฐฐ์—ด ์š”์†Œ ๋ณ€ํ™˜

map() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ฃผ์–ด์ง„ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.


  
let fruits = ["์ฒด๋ฆฌ", "์‚ฌ๊ณผ", "๋ฐ”๋‚˜๋‚˜"];
let mappedFruits = fruits.map(fruit => `fruit: ${fruit}`);
console.log(mappedFruits); // ["fruit: ์ฒด๋ฆฌ", "fruit: ์‚ฌ๊ณผ", "fruit: ๋ฐ”๋‚˜๋‚˜"]

filter(): ์กฐ๊ฑด์— ๋งž๋Š” ์š”์†Œ ํ•„ํ„ฐ๋ง

filter() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ฃผ์–ด์ง„ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๋งŒ ๋ชจ์•„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.


  
let words = ["apple", "banana", "cherry", "date", "fig", "grape"];
let longWords = words.filter(word => word.length >= 5);
console.log(longWords); // ["apple", "banana", "cherry", "grape"]

reduce(): ๋ฐฐ์—ด ๊ฐ’ ๋ˆ„์ 

reduce() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ฃผ์–ด์ง„ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ•˜๋‚˜์˜ ๊ฐ’์œผ๋กœ ๋ˆ„์ ํ•ฉ๋‹ˆ๋‹ค.


  
let numbers = [1, 2, 3, 4, 5];
let sum = numbers.reduce((acc, curr) => acc + curr, 0);
console.log(sum); // 15

find()์™€ findIndex(): ์กฐ๊ฑด์— ๋งž๋Š” ์š”์†Œ ์ฐพ๊ธฐ

  • find() ๋ฉ”์†Œ๋“œ๋Š” ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  
let fruits = ['Apple', 'Banana', 'Cherry'];
let cherry = fruits.find(function(fruit) {
return fruit === 'Cherry';
}); // 'Cherry'
  • findIndex() ๋ฉ”์†Œ๋“œ๋Š” ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  
let fruits = ['Apple', 'Banana', 'Cherry'];
let cherryIndex = fruits.findIndex(function(fruit) {
return fruit === 'Cherry';
}); // 2

05. ๊ณ ๊ธ‰ ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ์™€ ํ™œ์šฉ๋ฒ•๐Ÿš€

some()๊ณผ every(): ์กฐ๊ฑด ๊ฒ€์‚ฌ

  • some() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ์ผ๋ถ€ ์š”์†Œ๊ฐ€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค.

  
let fruits = ['Apple', 'Banana', 'Cherry'];
let hasShortFruit = fruits.some(function(fruit) {
return fruit.length < 5;
}); // false
  • every() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๊ฐ€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค.

  
let fruits = ['Apple', 'Banana', 'Cherry'];
let allLongFruits = fruits.every(function(fruit) {
return fruit.length > 5;
}); // false

sort(): ๋ฐฐ์—ด ์ •๋ ฌ

  • sort() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด์„ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์ „์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜๋ฉฐ, ์›ํ•˜๋Š” ์ •๋ ฌ ์ˆœ์„œ๋ฅผ ๋น„๊ต ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  
let fruits = ['Apple', 'Banana', 'Cherry'];
fruits.sort(); // ['Apple', 'Banana', 'Cherry']
    • ์‚ฌ์šฉ์ž ์ •์˜ ์ •๋ ฌ ๋น„๊ต ํ•จ์ˆ˜ ์˜ˆ์ œ

์‚ฌ์šฉ์ž ์ •์˜ ์ •๋ ฌ ๋น„๊ต ํ•จ์ˆ˜๋Š” JavaScript์˜ sort() ๋ฉ”์„œ๋“œ์—์„œ ์‚ฌ์šฉ๋˜์–ด ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ์›ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋‘ ๊ฐœ์˜ ์ธ์ž(a์™€ b)๋ฅผ ๋ฐ›์•„์„œ ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ๊ฒฝ์šฐ ์ค‘ ํ•˜๋‚˜์— ๋”ฐ๋ผ ๋™์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ์Œ์ˆ˜ ๋ฐ˜ํ™˜: a๋ฅผ b๋ณด๋‹ค ์•ž์— ์œ„์น˜์‹œํ‚ค๊ณ  ์‹ถ์„ ๋•Œ.
  2. ์–‘์ˆ˜ ๋ฐ˜ํ™˜: a๋ฅผ b๋ณด๋‹ค ๋’ค์— ์œ„์น˜์‹œํ‚ค๊ณ  ์‹ถ์„ ๋•Œ.
  3. ๋ฐ˜ํ™˜: a์™€ b์˜ ์ˆœ์„œ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ์‹ถ์„ ๋•Œ.

์ด๋Ÿฌํ•œ ๋น„๊ต ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋ฉด sort() ๋ฉ”์†Œ๋“œ๊ฐ€ ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ: ์ˆซ์ž ๋ฐฐ์—ด์˜ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ


  
let numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
numbers.sort(function(a, b) {
if (a < b) {
return -1; // a๋ฅผ b๋ณด๋‹ค ์•ž์— ์œ„์น˜์‹œํ‚ด
}
if (a > b) {
return 1; // a๋ฅผ b๋ณด๋‹ค ๋’ค์— ์œ„์น˜์‹œํ‚ด
}
return 0; // ์ˆœ์„œ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค์ง€ ์•Š์Œ
});
console.log(numbers); // [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

์œ„์˜ ์ฝ”๋“œ์—์„œ sort() ๋ฉ”์†Œ๋“œ๋Š” ๋น„๊ต ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด numbers ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. a๊ฐ€ b๋ณด๋‹ค ์ž‘์„ ๋•Œ๋Š” -1์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ a๋ฅผ b๋ณด๋‹ค ์•ž์— ์œ„์น˜์‹œํ‚ค๊ณ , a๊ฐ€ b๋ณด๋‹ค ํด ๋•Œ๋Š” 1์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ a๋ฅผ b๋ณด๋‹ค ๋’ค์— ์œ„์น˜์‹œํ‚ต๋‹ˆ๋‹ค. ๊ฐ™์„ ๊ฒฝ์šฐ์—๋Š” 0์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์ˆœ์„œ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ: ์ˆซ์ž ๋ฐฐ์—ด์˜ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ


  
numbers.sort(function(a, b) {
if (a > b) {
return -1; // a๋ฅผ b๋ณด๋‹ค ์•ž์— ์œ„์น˜์‹œํ‚ด (๋‚ด๋ฆผ์ฐจ์ˆœ)
}
if (a < b) {
return 1; // a๋ฅผ b๋ณด๋‹ค ๋’ค์— ์œ„์น˜์‹œํ‚ด (๋‚ด๋ฆผ์ฐจ์ˆœ)
}
return 0; // ์ˆœ์„œ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค์ง€ ์•Š์Œ
});
console.log(numbers); // [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

์œ„์˜ ์ฝ”๋“œ์—์„œ๋Š” ๊ฐ™์€ ๋ฐฐ์—ด์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋„๋ก ๋น„๊ต ํ•จ์ˆ˜๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. a๊ฐ€ b๋ณด๋‹ค ํด ๋•Œ -1์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ a๋ฅผ b๋ณด๋‹ค ์•ž์— ์œ„์น˜์‹œํ‚ค๊ณ , a๊ฐ€ b๋ณด๋‹ค ์ž‘์„ ๋•Œ 1์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ a๋ฅผ b๋ณด๋‹ค ๋’ค์— ์œ„์น˜์‹œํ‚ต๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐ™์„ ๊ฒฝ์šฐ์—๋Š” 0์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์ˆœ์„œ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.


reverse(): ๋ฐฐ์—ด ์ •๋ ฌ

  • reverse() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ์š”์†Œ ์ˆœ์„œ๋ฅผ ๋ฐ˜๋Œ€๋กœ ๋’ค์ง‘์Šต๋‹ˆ๋‹ค.

  
let fruits = ['Apple', 'Banana', 'Cherry'];
fruits.reverse(); // ['Cherry', 'Banana', 'Apple']

concat(): ๋ฐฐ์—ด ํ•ฉ์น˜๊ธฐ

  • concat() ๋ฉ”์†Œ๋“œ๋Š” ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ฐฐ์—ด์„ ํ•ฉ์ณ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  
let fruits = ['Apple', 'Banana'];
let moreFruits = ['Cherry', 'Mango'];
let allFruits = fruits.concat(moreFruits); // ['Apple', 'Banana', 'Cherry', 'Mango']

slice()์™€ splice(): ๋ฐฐ์—ด ๋ถ€๋ถ„ ์ถ”์ถœ ๋ฐ ๋ณ€๊ฒฝ

  • slice() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ์ผ๋ถ€๋ฅผ ์ถ”์ถœํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  
let fruits = ['Apple', 'Banana', 'Cherry', 'Mango'];
let someFruits = fruits.slice(1, 3); // ['Banana', 'Cherry']
  • splice() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ์ผ๋ถ€๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.

  
let fruits = ['Apple', 'Banana', 'Cherry'];
fruits.splice(1, 1, 'Blueberry'); // ['Apple', 'Blueberry', 'Cherry']

06. ๋ฐฐ์—ด๊ณผ ๊ด€๋ จ๋œ ์œ ์šฉํ•œ ํŒ๐Ÿ“

๋‹ค์ฐจ์› ๋ฐฐ์—ด ๋‹ค๋ฃจ๊ธฐ

JavaScript์—์„œ๋Š” ๋ฐฐ์—ด ์•ˆ์— ๋ฐฐ์—ด์„ ํฌํ•จ์‹œ์ผœ ๋‹ค์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


  
let matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
console.log(matrix[1][2]); // 6

๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ (join, toString)

  • join() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ฌธ์ž์—ด๋กœ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค.

  
let fruits = ['Apple', 'Banana', 'Cherry'];
let fruitString = fruits.join(', '); // 'Apple, Banana, Cherry'
  • toString() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  
let fruits = ['Apple', 'Banana', 'Cherry'];
let arrayString = fruits.toString(); // 'Apple,Banana,Cherry'

์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ํŒ

  • ๋ฐฐ์—ด ํฌ๊ธฐ๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ดˆ๊ธฐ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • for ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” length ํ”„๋กœํผํ‹ฐ๋ฅผ ๋ฏธ๋ฆฌ ์ €์žฅํ•ด ๋‘๋ฉด ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, JavaScript์—์„œ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•  ๋•Œ for ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, length ํ”„๋กœํผํ‹ฐ๋ฅผ ๋ฏธ๋ฆฌ ์ €์žฅํ•ด ๋‘๋ฉด ๋ฐ˜๋ณตํ•  ๋•Œ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋งค ๋ฐ˜๋ณต๋งˆ๋‹ค ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๋Š” ๋น„์šฉ์„ ์ค„์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์€ for ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•  ๋•Œ length ํ”„๋กœํผํ‹ฐ๋ฅผ ๋ฏธ๋ฆฌ ์ €์žฅํ•˜๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.


  
let fruits = ['์‚ฌ๊ณผ', '๋ฐ”๋‚˜๋‚˜', '์ฒด๋ฆฌ'];
// ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๋ฏธ๋ฆฌ ์ €์žฅ
let len = fruits.length;
// ์ผ๋ฐ˜์ ์ธ for ๋ฃจํ”„ ์‚ฌ์šฉ
for (let i = 0; i < len; i++) {
console.log(fruits[i]);
}

์ด ์˜ˆ์ œ์—์„œ๋Š” fruits.length๋ฅผ len ๋ณ€์ˆ˜์— ์ €์žฅํ•œ ํ›„ for ๋ฃจํ”„์—์„œ ์ด ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋งค ๋ฐ˜๋ณต๋งˆ๋‹ค ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋น„์šฉ์„ ํ”ผํ•  ์ˆ˜ ์žˆ์–ด์„œ ์„ฑ๋Šฅ์ด ๊ฐœ์„ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


07. ํ•ต์‹ฌ ๋‚ด์šฉ๐Ÿ‘€

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์—ด
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์—ด
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์—ด

728x90
๋ฐ˜์‘ํ˜•