230403 - Array

๋ฐฑ์Šน์—ฐยท2023๋…„ 4์›” 3์ผ
1

๐Ÿšฉ javascript

Array

๐Ÿ“ ์„ค๋ช…

  • ์ด๋ฆ„๊ณผ ์ธ๋ฑ์Šค๋กœ ์ฐธ์กฐ๋˜๋Š” ์ •๋ ฌ๋œ ๊ฐ’์˜ ์ง‘ํ•ฉ.
  • ๋ฐฐ์—ด์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ’์„ ์š”์†Œ(element)๋ผ๊ณ  ํ•˜๋ฉฐ, ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ˆซ์ž๋ฅผ ์ธ๋ฑ์Šค(index)๋ผ๊ณ  ํ•œ๋‹ค.

โœ’๏ธ ์‚ฌ์šฉ๋ฒ•

์ž…๋ ฅ

js

/*
  ์ž๋ฃŒ๊ตฌ์กฐ(Data Structure)
    - ์ˆœ์„œ(index)๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ. ๋‹ค์–‘ํ•œ ํƒ€์ž…์ด ๊ณต์กด -> ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ํƒ€์ž… ๋ฐฐ์—ด์ด ์žˆ์Œ
    - ์—ฐ์†์ ์œผ๋กœ ์ด์–ด์ ธ ์žˆ์ง€ ์•Š์Œ (์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ์—ฐ์†์œผ๋กœ ์ด์–ด์ ธ ์žˆ์Œ)
    - ์˜ค๋ธŒ์ ํŠธ์™€ ๊ฑฐ์˜ ๋™์ผ
*/

// ๋ฐฐ์—ด ์ƒ์„ฑ ๋ฐฉ๋ฒ•
let array1 = new Array(3); // Array ๊ฐ์ฒด(ํด๋ž˜์Šค). 3๊ฐœ์งœ๋ฆฌ ๋ฐฐ์—ด์„ ๋งŒ๋“ฆ
console.log(array1);

let array2 = new Array(1, 2, 3); // Array ๊ฐ์ฒด(ํด๋ž˜์Šค)์ด์šฉ. ์‹ค์ œ ์•„์ดํ…œ ์ „๋‹ฌ
console.log(array2);

let array3 = Array(1, 2, 3, 4); // ์Šคํƒœํ‹ฑ ํ•จ์ˆ˜ ์ด์šฉ
console.log(array3);

let array4 = [1, 2, 3, 4, 5]; // ๋ฐฐ์—ด ๋ฆฌํ„ฐ๋Ÿด(๊ตฌ์ฒด์ ์ธ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ๋ฐฐ์—ด์„ ์ƒ์„ฑ)
console.log(array4);
// ์˜ค๋ธŒ์ ํŠธ์—์„œ๋Š” {}, ๋ฐฐ์—ด์—์„œ๋Š” []

let array5 = Array.from(array4); // ๊ธฐ์กด ๋ฐฐ์—ด๋กœ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ฆ
console.log("array5", array5);

let array6 = Array.from("Monday");
console.log("array6", array6);
// ๋ฌธ์ž(char) ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ๋ฐฐ์—ด์˜ ์•„์ดํ…œ์œผ๋กœ
// iterable (์ˆœํšŒ, ๋ฐ˜๋ณต์ด ๊ฐ€๋Šฅ)

let array7 = Array.from({
  0: "์•ˆ",
  1: "๋…•",
  2: "ํ•˜",
  3: "์„ธ",
  4: "์š”",
  length: 5 // ํ•„์ˆ˜. ๋ฐฐ์—ด์—๋Š” ๊ธธ์ด ์ •๋ณด๊ฐ€ ์žˆ์Œ
});
console.log(array7);

์ถœ๋ ฅ

  • ์ด๋ฏธ์ง€๋กœ ๋Œ€์ฒด

๐Ÿ”— ์ฐธ๊ณ  ๋งํฌ & ๋„์›€์ด ๋˜๋Š” ๋งํฌ






๋ฐฐ์—ด ์ถ”๊ฐ€/์‚ญ์ œ

๐Ÿ“ ์„ค๋ช…

  • ๋ฐฐ์—ด์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.

โœ’๏ธ ์‚ฌ์šฉ๋ฒ•

์ž…๋ ฅ

js

const food = ["๐Ÿง€", "๐Ÿฅ", "๐Ÿ–", "๐Ÿฅž"]; // ๋ฐฐ์—ด ๋ฆฌํ„ฐ๋Ÿด๋กœ ๋ฐฐ์—ด ์ƒ์„ฑ
console.log(food);

// ๋ฐฐ์—ด ์•„์ดํ…œ์„ ์ฐธ์กฐ(์„ ํƒ)ํ•˜๋Š” ๋ฐฉ๋ฒ•
console.log(food[0]); // ์น˜์ฆˆ
console.log(food[3]); // ํŒฌ์ผ€์ดํฌ
console.log(food.length); // 4 // .์ฐ์–ด๋ณด๋ฉด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜, ์†์„ฑ์ด ์ญ‰ ๋‚˜์˜ด
console.log("๋งˆ์ง€๋ง‰ ์•„์ดํ…œ", food[food.length - 1]);

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

// const food = ["๐Ÿง€", "๐Ÿฅ", "๐Ÿ–", "๐Ÿฅž"];
// ์ธ๋ฑ์Šค๋กœ ์ถ”๊ฐ€ - ์ข‹์ง€ ์•Š์€ ๋ฐฉ๋ฒ•
food[6] = "๐ŸŽ"; // ์ฐจ๋ก€๋Œ€๋กœ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ค‘๊ฐ„์— ๋นˆ ์•„์ดํ…œ์ด ์žˆ๋Š” ์ƒํƒœ๋กœ ์ถ”๊ฐ€
console.log(food);

// ํ™•์‹คํ•˜๊ฒŒ ์ œ์ผ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ
food[food.length] = "๐Ÿฅ";
console.log("ํ‚ค์œ„ ์ถ”๊ฐ€", food);

// ๊ธฐ์กด ์•„์ดํ…œ ์—…๋ฐ์ดํŠธ
food[2] = "๐Ÿ‹";
console.log("๋ ˆ๋ชฌ ์ถ”๊ฐ€", food);

// ์ธ๋ฑ์Šค๋กœ ์‚ญ์ œ
delete food[1]
console.log("2๋ฒˆ์งธ ์•„์ดํ…œ ์‚ญ์ œ", food);

์ถœ๋ ฅ

  • ์ด๋ฏธ์ง€๋กœ ๋Œ€์ฒด

๐Ÿ”— ์ฐธ๊ณ  ๋งํฌ & ๋„์›€์ด ๋˜๋Š” ๋งํฌ






๋ฐฐ์—ด ๊ด€๋ จ ๋ฉ”์†Œ๋“œ

๐Ÿ“ ์„ค๋ช…

  • ๋ฐฐ์—ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ ์—ฐ์Šต

โœ’๏ธ ์‚ฌ์šฉ๋ฒ•

์ž…๋ ฅ

์˜ˆ์ œ1

js

const fruits = ["๐Ÿ‡", "๐ŸŽ", "๐Ÿ‹", "๐Ÿ’"]; //๋ฐฐ์—ด ๋ฆฌํ„ฐ๋Ÿด๋กœ ๋ฐฐ์—ด ์ƒ์„ฑ
console.log(fruits);

// ํŠน์ •ํ•œ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๋ฐฐ์—ด์ธ์ง€ ์•„๋‹Œ์ง€ ์ฒดํฌ
console.log(Array.isArray(fruits));
console.log(Array.isArray({})); // ๋นˆ ์˜ค๋ธŒ์ ํŠธ - false ([]๋Š” true)
console.log("");

// ๋ฐฐ์—ด ์•ˆ์— ํŠน์ •ํ•œ ์•„์ดํ…œ์˜ ์œ„์น˜(์ธ๋ฑ์Šค)๋ฅผ ์ฐพ์„ ๋•Œ
// ๋ฐฐ์—ด๋ช….indexOf(item)
console.log("๐Ÿ‹์˜ ์ธ๋ฑ์Šค๋Š”?", fruits.indexOf("๐Ÿ‹"));
console.log("");

// ๋ฐฐ์—ด ์•ˆ์— ํŠน์ •ํ•œ ์•„์ดํ…œ์ด ์žˆ๋Š”์ง€ ์ฒดํฌ
console.log("๐ŸŽ ์กด์žฌ ์—ฌ๋ถ€ ? : ", fruits.includes("๐ŸŽ")); // true
console.log("๐Ÿค ์กด์žฌ ์—ฌ๋ถ€ ? : ", fruits.includes("๐Ÿค")); // false
console.log("");

// ์•„์ดํ…œ ์ถ”๊ฐ€ - ๋งจ ๋’ค์ชฝ
fruits.push("๐Ÿฅ", "๐Ÿฅ"); // ์—ฌ๋Ÿฌ ๊ฐœ ์ถ”๊ฐ€๋„ ๊ฐ€๋Šฅ. ๋ฐฐ์—ด ์ž์ฒด๋ฅผ ์ˆ˜์ • (์—…๋ฐ์ดํŠธ)
console.log("๐Ÿฅ ์ถ”๊ฐ€", fruits);
console.log("์•„์ดํ…œ ๊ฐฏ์ˆ˜๋Š”?", fruits.length);
console.log("");

// ์•„์ดํ…œ ์ถ”๊ฐ€ - ๋งจ ์•ž์ชฝ
fruits.unshift("๐Ÿฆช", "๐Ÿฆช"); // ์—ฌ๋Ÿฌ ๊ฐœ ์ถ”๊ฐ€๋„ ๊ฐ€๋Šฅ. ๋ฐฐ์—ด ์ž์ฒด๋ฅผ ์ˆ˜์ • (์—…๋ฐ์ดํŠธ)
console.log("๐Ÿฆช ์ถ”๊ฐ€", fruits);
console.log("์•„์ดํ…œ ๊ฐฏ์ˆ˜๋Š”?", fruits.length);
console.log("");

// ์•„์ดํ…œ ์ œ๊ฑฐ - ๋งจ ๋’ค์ชฝ
let lastItem = fruits.pop();
console.log("๋งจ ๋’ค index ์ œ๊ฑฐ", fruits); // ๋ฐฐ์—ด ์ž์ฒด๋ฅผ ์ˆ˜์ • (์—…๋ฐ์ดํŠธ)
console.log("์ œ๊ฑฐ๋œ ์•„์ดํ…œ์€?", lastItem);
console.log("");

// ์•„์ดํ…œ ์ œ๊ฑฐ - ๋งจ ์•ž์ชฝ
lastItem = fruits.shift();
console.log("๋งจ ์•ž index ์ œ๊ฑฐ", fruits); // ๋ฐฐ์—ด ์ž์ฒด๋ฅผ ์ˆ˜์ • (์—…๋ฐ์ดํŠธ)
console.log("์ œ๊ฑฐ๋œ ์•„์ดํ…œ์€?", lastItem);
console.log("");

// ์ค‘๊ฐ„ ์•„์ดํ…œ์„ ์ถ”๊ฐ€ ๋˜๋Š” ์‚ญ์ œ
// ์‚ญ์ œํ•  ๊ฐฏ์ˆ˜๊ฐ€ ์ƒ๋žต๋˜๋ฉด ํ•ด๋‹น ์ธ๋ฑ์Šค ๋’ค์˜ ์ธ๋ฑ์Šค ์ „๋ถ€ ์‚ญ์ œ
// ๋ฐฐ์—ด.splice(์‹œ์ž‘ ์ธ๋ฑ์Šค, ์‚ญ์ œ๋  ๊ฐฏ์ˆ˜)
let deleted = fruits.splice(1, 2); // 1๋ฒˆ ์ธ๋ฑ์Šค(2๋ฒˆ์งธ)๋ถ€ํ„ฐ 2๊ฐœ ์‚ญ์ œ
console.log("์ค‘๊ฐ„ ์ œ๊ฑฐ", fruits);
console.log("์ œ๊ฑฐ๋œ ์•„์ดํ…œ์€?", deleted);
console.log();
// ์ค‘๊ฐ„ ์ œ๊ฑฐ [ '๐Ÿฆช' , '๐ŸŽ', '๐Ÿ‹', '๐Ÿ’', '๐Ÿฅ' ]

fruits.splice(1, 1, "๐Ÿญ", "๐Ÿณ");
console.log("splice()๋กœ ์ค‘๊ฐ„์„ ์ง€์›Œ์ค€ ๋’ค ๊ทธ ์ž๋ฆฌ์— ์ถ”๊ฐ€ : ", fruits); // [ '๐Ÿฆช' , '๐Ÿญ', '๐Ÿณ', '๐Ÿ‹', '๐Ÿ’', '๐Ÿฅ' ]
// splice(์‹œ์ž‘์ธ๋ฑ์Šค, ์‚ญ์ œ๋ ๊ฐฏ์ˆ˜, ์ถ”๊ฐ€๋  ์•„์ดํ…œ1, 2, ...)

์˜ˆ์ œ2

js

const fruits = ["๐Ÿ‡", "๐ŸŽ", "๐Ÿ‹", "๐Ÿ’"]; //๋ฐฐ์—ด ๋ฆฌํ„ฐ๋Ÿด๋กœ ๋ฐฐ์—ด ์ƒ์„ฑ

// ๊ธฐ์กด ๋ฐฐ์—ด์—์„œ ์ž˜๋ผ์˜จ ํ›„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ฆ
let newFruit = fruits.slice(1, 3);
console.log("์ƒˆ๋กœ์šด ๋ฐฐ์—ด : ", newFruit); // ์ƒˆ๋กœ์šด ๋ฐฐ์—ด :  [ '๐ŸŽ', '๐Ÿ‹' ]
// Array.slice(์‹œ์ž‘์ง€์ (index), ๋งˆ์ง€๋ง‰์ง€์ (๋ช‡ ๋ฒˆ์งธ์ธ์ง€));
// Array.slice(); - ์•„๋ฌด๊ฒƒ๋„ ์ ์ง€ ์•Š์œผ๋ฉด ๋ฐฐ์—ด ์ „์ฒด๋ฅผ ๋ฐ˜ํ™˜
// Array.slice(1); - 2๋ฒˆ์งธ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ฐ˜ํ™˜

newFruit = fruits.slice(-2); // ๋’ค์—์„œ๋ถ€ํ„ฐ 2๊ฐœ ์•„์ดํ…œ ๋ฐ˜ํ™˜
console.log("- ๊ฐ’ ์ด์šฉ : ", newFruit); // - ๊ฐ’ ์ด์šฉ :  [ '๐Ÿ‹', '๐Ÿ’' ]

// ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐฐ์—ด์„ ์ด์–ด์คŒ(ํ•ฉ์ณ์คŒ)
const arr1 = [1, 2, 3];
const arr2 = [100, 200, 300];
const arr3 = arr1.concat(arr2);
console.log("arr1 : ", arr1);
console.log("arr2 : ", arr2);
console.log("arr3 : ", arr3);
console.log();

// ์ˆœ์„œ๋ฅผ ๊ฑฐ๊พธ๋กœ
const arr4 = arr3.reverse();
console.log("arr4 : ", arr4);
console.log();

// ํŠน์ • ๊ฐ’์œผ๋กœ ๋ฐฐ์—ด ์•„์ดํ…œ ์ฑ„์šฐ๊ธฐ
arr4.fill("๐Ÿฅš");
console.log("fill๋กœ ์•„์ดํ…œ ์ฑ„์šฐ๊ธฐ : ", arr4);

arr4.fill("๐Ÿง", 1, 3);
console.log("fill๋กœ ์•„์ดํ…œ ์ฑ„์šฐ๊ธฐ : ", arr4);
console.log();
// Array.fill(์ฑ„์šธ ์•„์ดํ…œ, ์‹œ์ž‘์ง€์ (์ธ๋ฑ์Šค๋„˜๋ฒ„), ๋๋‚˜๋Š”์ง€์ (๋ช‡ ๋ฒˆ์งธ์ธ์ง€))

arr4.fill("๐Ÿฟ", 3);
console.log("fill(๐Ÿฟ, 3) : ", arr4);
console.log();
// Array.fill(์ฑ„์šธ์•„์ดํ…œ, ์‹œ์ž‘์ง€์ (์ธ๋ฑ์Šค๋„˜๋ฒ„)) - ๋๊นŒ์ง€ ์ฑ„์›Œ์ง

// ๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ค๊ธฐ join
arr5 = ["ํ•˜๋Š˜", "๐ŸŒธ", "sky", "๐Ÿ’™", "๋ฐ”๋‹ค", "1004"];
console.log("arr5 : ", arr5);

let text = arr5.join(); // ์ž๋™์œผ๋กœ ,(์ฝค๋งˆ)๋ฅผ ์ด์šฉํ•ด์„œ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜
console.log("text : ", text); // text :  ํ•˜๋Š˜,๐ŸŒธ,sky,๐Ÿ’™,๋ฐ”๋‹ค,1004

text = arr5.join("/"); // '/'(์Šฌ๋ž˜์‹œ)๋ฅผ ์ด์šฉํ•ด์„œ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜
console.log("text : ", text); // text :  ํ•˜๋Š˜/๐ŸŒธ/sky/๐Ÿ’™/๋ฐ”๋‹ค/1004

// ์ค‘์ฒฉ๋œ ๋ฐฐ์—ด
const arr6 = [
  ["๐Ÿฅฐ", "๐Ÿ™„", "๐Ÿ˜ช"],
  [1, 2, 3, 4, [100, 200]],
];
console.log("์ค‘์ฒฉ๋œ ๋ฐฐ์—ด", arr6);
const arr7 = arr6.flat(2);
console.log("์ค‘์ฒฉ๋œ ๋ฐฐ์—ด arr6 flat() ์ ์šฉ", arr7);
// Array.flat() - ํ•œ ๋‹จ๊ณ„๊นŒ์ง€ ์ค‘์ฒฉ๋œ ๋ฐฐ์—ด์„ ํ’€์–ด์คŒ.
// Array.flat(์ˆซ์ž) - ๋ฐฐ์—ด ์•ˆ์— ๋ฐฐ์—ด์ด ๋˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ์ˆซ์ž(๋‹จ๊ณ„)๋ฅผ ๋„ฃ์–ด์ค€๋‹ค.

์ถœ๋ ฅ

  • ์ด๋ฏธ์ง€๋กœ ๋Œ€์ฒด

๐Ÿ”— ์ฐธ๊ณ  ๋งํฌ & ๋„์›€์ด ๋˜๋Š” ๋งํฌ






profile
๊ณต๋ถ€ํ•˜๋Š” ๋ฒจ๋กœ๊ทธ

0๊ฐœ์˜ ๋Œ“๊ธ€