[JS] λ°°μ—΄

zinnnn37Β·2024λ…„ 5μ›” 28일
0

πŸ–₯️ JavaScript

λͺ©λ‘ 보기
2/3

πŸš‚ Array

πŸ“ λŒ€κ΄„ν˜Έ[]λ₯Ό μ‚¬μš©ν•œλ‹€
πŸ“ JavaScriptλŠ” Array ν΄λž˜μŠ€κ°€ μ‘΄μž¬ν•œλ‹€
πŸ“ λ„ˆλ¬΄.. μ‹ κΈ°ν•œ 게 index out of range μ—λŸ¬κ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ”λ‹€..
β†’ μ˜λ„λœ 건지 λ‚˜μ€‘μ— 고쳐질 κ±΄μ§€λŠ” λͺ¨λ₯΄κ² μ§€λ§Œ 이 점 μœ μ˜ν•΄μ„œ μž‘μ„±ν•˜λŠ” 것이 쒋을 λ“― !

πŸšƒ 1차원 λ°°μ—΄

πŸ“ Array ν΄λž˜μŠ€κ°€ μ‘΄μž¬ν•œλ‹€

// 길이가 n인 빈 λ°°μ—΄ 생성
let arr = Array(n);

// μœ„μ—μ„œ μ–ΈκΈ‰ν–ˆλ“― 인덱슀 μ—λŸ¬κ°€ λ‚˜μ§€ μ•ŠλŠ”λ‹€
arr[3] = 3;
arr[5] = 5;
console.log(arr);
// [ <3 empty items>, 3, <1 empty items>, 5 ]

console.log(arr[10]);
// undefined

🐍 λ°°μ—΄ 길이 κ΅¬ν•˜κΈ°: length

πŸ“ length 속성을 μ΄μš©ν•œλ‹€

let arr = [1, 2, 3, 4, 5];
console.log(arr.length);
// 5

πŸ«™ λ°°μ—΄ μ΄ˆκΈ°ν™”ν•˜κΈ°: fill

πŸ“ λ°˜λ³΅λ¬Έμ„ λŒλ©΄μ„œ 0으둜 μ΄ˆκΈ°ν™”μ‹œν‚¨λ‹€
πŸ“ fill λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•œλ‹€

fill(toFill, start, end);
let arr = [1, 2, 3, 4, 5];

arr.fill(0, 0, 2);
console.log(arr);
// [0, 0, 3, 4, 5]

arr.fill();
console.log(arr);
// [undefined, undefined, undefined, undefined, undefined]

// Array class 이용
let arrClass = Array(5).fill(0);

console.log(arrClass);
// [0, 0, 0, 0, 0]

🍑 λ°°μ—΄ ν•©μΉ˜κΈ°: join

πŸ“ λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό ν•œ λ¬Έμžμ—΄λ‘œ ν•©μΉ˜λŠ” λ©”μ†Œλ“œμ΄λ‹€
πŸ“ μƒλž΅λ˜λŠ” 경우 ,둜 κ΅¬λΆ„λœλ‹€
πŸ“ null, undefinedλŠ” 빈 λ¬Έμžμ—΄λ‘œ μΉ˜ν™˜ν•œλ‹€

array.join(sep)
['κ°€', 'λ‚˜', 'λ‹€'].join(); // 'κ°€,λ‚˜,λ‹€'
[1, 2, 3].join(', '); // '1, 2, 3'
[18, , 25].join(':'); // '18::25'
['a', 'b', 'c'].join(''); // 'abc'


🎫 2차원 λ°°μ—΄

πŸ“ κ°œν–‰ κΈ°μ€€μœΌλ‘œ λ‚˜λˆˆ 1차원 배열듀을 λ‹€λ₯Έ 배열에 pushν•œλ‹€

const fs = require("fs");
let input = fs.readFileSync(0).toString().trim().split("\n");

let arr2d = [];
for (let i = 0; i < 4; i++) {
  // map(Number): μš”μ†Œλ“€μ„ Number()을 μ΄μš©ν•΄ 숫자둜 λ°”κΎΌλ‹€
  arr2d.push(input[i].split(" ").map(Number));
}

console.log(arr2d);
/*
[
  [ 1, 2, 3, 4 ],
  [ 7, 8, 9, 10 ],
  [ 11, 12, 13, 14 ],
  [ 15, 16, 17, 18 ]
]
*/

🐍 2차원 λ°°μ—΄μ—μ„œμ˜ length

πŸ“ 리슀트 λ‚΄ μ›μ†Œ 개수λ₯Ό λ°˜ν™˜ν•˜λ―€λ‘œ ν–‰μ˜ μˆ˜κ°€ λ°˜ν™˜λœλ‹€

let arr2d = [
  [1, 2, 3, 4],
  [7, 8, 9, 10],
  [11, 12, 13, 14],
  [15, 16, 17, 18]
];
console.log(arr2d.length);
// 4

πŸ«™ 2차원 λ°°μ—΄ 0으둜 μ΄ˆκΈ°ν™”ν•˜κΈ°

let n = 4;
// map: arr2d 행을 λŒλ©΄μ„œ ν•΄λ‹Ή 행에 길이 n의 0으둜 μ±„μ›Œμ§„ λ°°μ—΄ λ„£κΈ°
let arr2d = Array(n).fill(0).map(() => Array(n).fill(0));
console.log(arr2d);
/*
[
  [ 0, 0, 0, 0, 0 ],
  [ 0, 0, 0, 0, 0 ],
  [ 0, 0, 0, 0, 0 ],
  [ 0, 0, 0, 0, 0 ]
]
*/

πŸ–¨οΈ 2차원 λ°°μ—΄ 좜λ ₯ν•˜κΈ°

let n = 4;
let arr2d = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]];

for (let row of arr2d) {
    let str = "";
    for (let e of row) {
        str += e + " ";
    }
    console.log(str);
}
/*
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
*/

계속 inμ΄λž‘ ν—·κ°ˆλ¦°λ‹€.. python의 μž”μž¬μ—¬..

🍑 2차원 λ°°μ—΄μ—μ„œμ˜ join

πŸ“ μž¬κ·€μ μœΌλ‘œ λ™μž‘ν•˜μ—¬ n차원 배열도 λ¬Έμžμ—΄λ‘œ λ°”κΏ”μ€€λ‹€
⚠️ κ°€μž₯ λ°”κΉ₯μͺ½μ˜ κ΅¬λΆ„μžλ§Œ μ„€μ • κ°€λŠ₯ν•˜κ³  κ·Έ μ™Έμ˜ κ΅¬λΆ„μžλŠ” κΈ°λ³Έκ°’,으둜 μ„€μ •λœλ‹€

const arr = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9],
];

console.log(arr.join("-"));
// 1,2,3-4,5,6-7,8,9

πŸ“‘ Reference

join λ©”μ†Œλ“œ

profile
πŸ˜Žλ…Έμ…˜ 상주 쀑,,😎

0개의 λŒ“κΈ€