๋”ฐํŒŒ๐Ÿ•
Hwaiian Pizza IT Pub
๋”ฐํŒŒ๐Ÿ•
  • ALL (62)
    • Front-End (13)
      • HTML & CSS (2)
      • JavaScript (7)
      • React (2)
      • TypeScript (0)
      • Jquery (0)
      • Git (1)
      • Editor (0)
    • Algorithms (44)
      • Baekjoon (28)
      • Programmers (13)
      • Algorithms (3)
    • Computer Science (0)
      • Math (0)
    • Conference (1)
    • Life (3)
      • Book (0)
hELLO ยท Designed By ์ •์ƒ์šฐ.
๋”ฐํŒŒ๐Ÿ•

Hwaiian Pizza IT Pub

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ๋ฐฐ์—ด(Array)์˜ ๊ฐœ๋…๊ณผ ์˜ˆ์‹œ (feat.๋“œ๋ฆผ์ฝ”๋”ฉ)
Front-End/JavaScript

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ๋ฐฐ์—ด(Array)์˜ ๊ฐœ๋…๊ณผ ์˜ˆ์‹œ (feat.๋“œ๋ฆผ์ฝ”๋”ฉ)

2022. 5. 31. 23:15
๋ฐ˜์‘ํ˜•

 

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€๋ฉด์„œ ๋А๋‚€ ์ 

๋ฐฐ์—ด์„ ์ œ๋Œ€๋กœ ์•Œ์•„์•ผ๊ฒ ๋‹ค.

๊ทธ๋ž˜์„œ ์ •๋ฆฌํ•ด๋ณธ๋‹ค.

 

๋ค๋ฒผ๋ผ ๋ฐฐ์—ด <?

 

 

 

 

 

 

 

0. ๋ฐฐ์—ด์„ ๊ณต๋ถ€ํ•˜๊ธฐ ์ „์— ์•Œ์•„๋ณด๋ฉด ์ข‹์€ ๊ฐœ๋…๋“ค

์ถœ์ฒ˜ : ๋“œ๋ฆผ์ฝ”๋”ฉ

โ–ถ๏ธŽ์ž๋ฃŒ๊ตฌ์กฐ(Data Structure) : ๋น„์Šทํ•œ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ, ์˜ค๋ธŒ์ ํŠธ ๋“ค์„ ๋ฌถ์–ด ๋†“์€ ๊ฒƒ (ํ† ๋ผ๋งŒ ๋„ฃ์€ ๋ฐ”๊ตฌ๋‹ˆ, ๋‹น๊ทผ๋งŒ ๋„ฃ์€ ๋ฐ”๊ตฌ๋‹ˆ)

์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋™์ผํ•œ ํƒ€์ž…์— ๋ฐ์ดํ„ฐ๋งŒ ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค.

 

 

but , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” dynamically typed language ํƒ€์ž…์ด ๋™์ ์œผ๋กœ ์ •์˜๋˜๋Š” ์–ธ์–ด!

ํ•œ ๋ฐ”๊ตฌ๋‹ˆ ์•ˆ์— ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์— ๋ฐ์ดํ„ฐ๋“ค์„ ๋‹ด์„ ์ˆ˜ ์žˆ์Œ โžก๏ธ  ์ ˆ๋Œ€ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Œ

 

 

์ถœ์ฒ˜ : ๋“œ๋ฆผ์ฝ”๋”ฉ

โ–ถ๏ธŽ์˜ค๋ธŒ์ ํŠธ(Object) : ์„œ๋กœ ์—ฐ๊ด€๋œ ํŠน์ง•๊ณผ ํ–‰๋™๋“ค์„ ๋ฌถ์–ด ๋†“์€ ๊ฒƒ (ํ† ๋ผ, ๋‹น๊ทผ, ์‚ฌ๋žŒ, ์ž๋™์ฐจ)

โ–ถ๏ธŽํ”„๋กœํผํ‹ฐ(Property) : ์˜ค๋ธŒ์ ํŠธ ๋‚ด๋ถ€์˜ ์†์„ฑ (๊ท€ ๋‘ ๊ฐœ, ๋™๋ฌผ, ๋น„ํƒ€๋ฏผC, ์ฃผํ™ฉ์ƒ‰)

โ–ถ๏ธŽ๋ฉ”์†Œ๋“œ(Method) : ์˜ค๋ธŒ์ ํŠธ์— ์ €์žฅ๋œ ํ•จ์ˆ˜๊ฐ’ (๋จน๋Š”๋‹ค, ๋›ด๋‹ค)

 

โ–ถ๏ธŽ๋ฐฐ์—ด ๋‚ด ๋™์ผํ•œ ๋ฐ์ดํ„ฐํƒ€์ž…(string,number ..)์„ ๋‹ด๊ธฐ

โ–ถ๏ธŽ๋ฐฐ์—ด์˜ ํฌ์ธํŠธ๋Š” ์ธ๋ฑ์Šค! ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•˜์—ฌ ์‚ญ์ œ, ์ถ”๊ฐ€

 

 

 

 

1. ๋ฐฐ์—ด์„ ์–ธ

'use strict';

// Array๐Ÿ˜

// 1. Declaration
const arr1 = new Array();
const arr2 = [1, 2];
const arr3 = [];

๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•˜๊ณ  new Array() ๋˜๋Š” []๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐฐ์—ด์„ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

2. ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•œ ๋ฐฐ์—ด์ ‘๊ทผ

// 2. Index position
// index๋ฅผ ํ™œ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์‚ฝ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•

const fruits = ['๐ŸŽ', '๐ŸŒ'];
console.log(fruits); // ['๐ŸŽ', '๐ŸŒ']
console.log(fruits.length); // 2
console.log(fruits[0]); // ๐ŸŽ
console.log(fruits[1]); // ๐ŸŒ
console.log(fruits[2]); //undefined
console.log(fruits[fruits.length - 1]); // ์ œ์ผ ๋งˆ์ง€๋ง‰ Index

์ปดํ“จํ„ฐ์˜ ์ธ๋ฑ์Šค๋Š” ์œ„์— ๊ทธ๋ฆผ์—์„œ ๋ณธ๊ฑฐ์ฒ˜๋Ÿผ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์˜ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„  ์ „์ฒด ๋ฐฐ์—ด์˜ ๊ธธ์ด์—์„œ 1์„ ๋นผ์•ผ ํ•œ๋‹ค.

 

 

 

3. ๋ฐฐ์—ด์•ˆ์— ์žˆ๋Š” ๊ฐ’ ์ถœ๋ ฅ

//3. Looping over an Array
//print all fruits

const fruits = ['๐ŸŽ', '๐ŸŒ'];

// a.for
for (let i = 0; i < fruits.length; i++) {
  console.log(fruits[i]);
}

// ๐ŸŽ
// ๐ŸŒ

// b. for...of
for(let fruit of fruits) {
  console.log(fruit);
}

// ๐ŸŽ
// ๐ŸŒ

// c. forEach
fruits.forEach((fruit, index) => console.log(fruit, index)); // array function

// ๐ŸŽ, 0
// ๐ŸŒ, 1

๋ฐฐ์—ด์•ˆ์— ์žˆ๋Š” ๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„  for๋ฌธ์„ ๋Œ๋ฆฌ๋Š” ๊ฒƒ๊ณผ forEach ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

 

 

 

4. ๋ฐฐ์—ด ์ถ”๊ฐ€, ์‚ญ์ œ, ๋ณต์‚ฌ

//4.Addition, deletion, copy (์ถ”๊ฐ€, ์‚ญ์ œ, ๋ณต์‚ฌ)

const fruits = ['๐ŸŽ', '๐ŸŒ'];

//push : add an item to the end (๋งจ ๋์— ์•„์ดํ…œ์„ ์ถ”๊ฐ€)
fruits.push('๐Ÿ','๐Ÿ‡');
console.log(fruits); //['๐ŸŽ', '๐ŸŒ','๐Ÿ','๐Ÿ‡']

//pop : remove an item from the end (๋งจ ๋์— ์•„์ดํ…œ์„ ์‚ญ์ œ)
fruits.pop(); // ๐Ÿ‡ bye ๐Ÿ‘‹
fruits.pop(); // ๐Ÿ bye ๐Ÿ‘‹
console.log(fruits); // ['๐ŸŽ', '๐ŸŒ']

//unshift : add an item to the bengging (๋งจ ์•ž์— ์•„์ดํ…œ์„ ์ถ”๊ฐ€)
fruits.unshift('๐Ÿฅ','๐Ÿ‹');
console.log(fruits); // ['๐Ÿฅ','๐Ÿ‹','๐ŸŽ', '๐ŸŒ']

// shift : remove an item from the bengging (๋งจ ์•ž์— ์•„์ดํ…œ์„ ์‚ญ์ œ)
fruits.shift(); // ๐Ÿฅ bye ๐Ÿ‘‹
fruits.shift(); // ๐Ÿ‹ bye ๐Ÿ‘‹
console.log(fruits); // ['๐ŸŽ', '๐ŸŒ']

//note!! shift, unshift are slower than pop, push
// ์ค‘์š” โœจ shift, unshift๋Š” pop, push๋ณด๋‹ค ๋А๋ฆฌ๋‹ค!

// combine two arrays ๋‘๊ฐœ์˜ ๋ฐฐ์—ด์„ ํ•ฉ์นจ
const fruits2 = ['๐Ÿ’','๐Ÿ…'];
const newFruits = fruits.concat(fruits2);
console.log(newFruits); // ['๐ŸŽ', '๐ŸŒ','๐Ÿ’','๐Ÿ…']

push์™€ pop์€ ๋’ค์—์„œ ๋ฐฐ์—ด์„ ์‚ญ์ œํ•˜๊ณ  ์ถ”๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ž์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์˜ ์ด๋™์ด ์—†๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๋ฐ˜์—์„œ ์ค„์„ ์ •๋ ฌํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ ๋’ท์ค„์— ์„œ์žˆ๋Š” ์–˜๋“ค์ด ๋น ์ง€๊ณ  ๋‹ค์‹œ ๋“ค์–ด์˜ค๋Š” ๊ฑด ๋ณ„๋กœ ์ฐจ์ด๋ฅผ ๋ชป ๋А๋ผ์ง€๋งŒ

๋งจ ์•ž์— ์žˆ๋Š” ์‚ฌ๋žŒ์ด ๋น ์ง€๊ฑฐ๋‚˜ ์ƒˆ๋กญ๊ฒŒ ๋“ค์–ด์˜ฌ ๋•Œ๋ฉด ํ•œ ์นธ์”ฉ ๋ฐ€๋ฆฌ๋ฉด์„œ ์ค„์„ ์ •๋ ฌํ•˜๊ธฐ ์œ„ํ•œ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง„๋‹ค.

์™€ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๋‹ค!

๊ทธ๋ž˜์„œ shift์™€ unshift๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค.

 

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€๋‚˜ ์‚ญ์ œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด push๋‚˜ pop์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

 

 

5. ๋ฐฐ์—ด ๊ฒ€์ƒ‰

//5.Searching

const fruits =  ['๐ŸŽ', '๐ŸŒ'];
fruits.push('๐Ÿ‰');

//indexOf : find the index (๋ฐฐ์—ด์— ์žˆ๋Š” ์š”์†Œ์ค‘ ์ผ์น˜ํ•˜๋Š” ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ ์š”์†Œ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜)

console.log(fruits); // ['๐ŸŽ', '๐ŸŒ', '๐Ÿ‰']
console.log(fruits.indexOf('๐ŸŽ')); //0
console.log(fruits.indexOf('๐Ÿ‰')); //2
console.log(fruits.indexOf('๐Ÿง€'));  //-1 ๋ฐฐ์—ด์— ์š”์†Œ๊ฐ€ ์—†์œผ๋ฉด -1์„ ๋ฐ˜ํ™˜


//includes ๋ฐฐ์—ด์— ์š”์†Œ๋ฅผ ํฌํ•จ์—ฌ๋ถ€๋ฅผ boolean ๊ฐ’์œผ๋กœ ๋‚˜ํƒ€๋ƒ„

console.log(fruits.includes('๐ŸŽ')); //true
console.log(fruits.includes('๐Ÿง€')); //false


//lastIndexOf (๋ฐฐ์—ด์— ์žˆ๋Š” ์š”์†Œ์ค‘ ์ผ์น˜ํ•˜๋Š” ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์š”์†Œ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜)

fruits.push('๐ŸŽ');
console.log(fruits); // ['๐ŸŽ', '๐ŸŒ', '๐Ÿ‰','๐ŸŽ']
console.log(fruits.indexOf('๐ŸŽ')); //0
console.log(fruits.lastIndexOf('๐ŸŽ')); //4

 

 

 

 

 

 

 

Reference

 

์ด ํฌ์ŠคํŒ…์€ ๋“œ๋ฆผ์ฝ”๋”ฉ ์œ ํŠœ๋ธŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์—ด ๊ฐ•์˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

 

 

 

 

 

 

๋ฐฐ์—ด์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…์„ ์•Œ์•„๋ดค์œผ๋‹ˆ ๋ฐฐ์—ด์„ ์ด์šฉํ•˜๋Š” ๋ฉ”์†Œ๋“ค๋„ ๋ค์œผ๋กœ ์•Œ์•„๋ณด๋Š” ๊ฒƒ๋„ ์ข‹๋‹ค.

๋” ์ž์„ธํ•˜๊ฒŒ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•˜์‹œ๊ธธ.

 

 

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์•Œ์•„๋‘๋ฉด ์œ ์šฉํ•œ ๋ฐฐ์—ด Array ๋ฉ”์†Œ๋“œ ์ •๋ฆฌ (feat.๋“œ๋ฆผ์ฝ”๋”ฉ)

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

hawaiian-pizza-it.tistory.com

 

 

 

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Front-End > JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž๋ฃŒํ˜• Map ๊ฐœ๋…์ •๋ฆฌ  (0) 2022.06.13
[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž๋ฃŒํ˜• Set ๊ฐœ๋…์ •๋ฆฌ  (0) 2022.06.07
[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์•Œ์•„๋‘๋ฉด ์œ ์šฉํ•œ ๋ฐฐ์—ด Array ๋ฉ”์†Œ๋“œ ์ •๋ฆฌ (feat.๋“œ๋ฆผ์ฝ”๋”ฉ)  (0) 2022.05.26
[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์•Œ์•„๋‘๋ฉด ์œ ์šฉํ•œ Math ๋ฉ”์†Œ๋“œ ์ •๋ฆฌ, ๋กœ๋˜๋ฒˆํ˜ธ ์ถ”์ถœ๊ธฐ  (0) 2022.05.23
[JS] ๋…ธ๋งˆ๋“œ ์ฝ”๋” : ๋ฐ”๋‹๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฑŒ๋ฆฐ์ง€ ํ›„๊ธฐ  (0) 2022.05.07
    'Front-End/JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž๋ฃŒํ˜• Map ๊ฐœ๋…์ •๋ฆฌ
    • [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž๋ฃŒํ˜• Set ๊ฐœ๋…์ •๋ฆฌ
    • [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์•Œ์•„๋‘๋ฉด ์œ ์šฉํ•œ ๋ฐฐ์—ด Array ๋ฉ”์†Œ๋“œ ์ •๋ฆฌ (feat.๋“œ๋ฆผ์ฝ”๋”ฉ)
    • [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ] ์•Œ์•„๋‘๋ฉด ์œ ์šฉํ•œ Math ๋ฉ”์†Œ๋“œ ์ •๋ฆฌ, ๋กœ๋˜๋ฒˆํ˜ธ ์ถ”์ถœ๊ธฐ
    ๋”ฐํŒŒ๐Ÿ•
    ๋”ฐํŒŒ๐Ÿ•
    ์ €์ชฝ ์†๋‹˜์ด ๋ณด๋‚ด์‹  ์—๋Ÿฌ์ž…๋‹ˆ๋‹ค. ๋””๋ฒ„๊น… ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?๐Ÿน

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”