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);
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, ...)
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(์ซ์) - ๋ฐฐ์ด ์์ ๋ฐฐ์ด์ด ๋ ์๋ ๊ฒฝ์ฐ๋ ์ซ์(๋จ๊ณ)๋ฅผ ๋ฃ์ด์ค๋ค.