JavaScript : Array

m_ngyeongΒ·2024λ…„ 1μ›” 9일
0

JavaScript

λͺ©λ‘ 보기
7/9
post-thumbnail

🍌 JavaScript


Array

Array Literal

Array Literal(λ°°μ—΄ λ¦¬ν„°λŸ΄)은 μ‰Όν‘œ(,)둜 κ΅¬λΆ„ν•œ 값을 λŒ€κ΄„ν˜Έ([])둜 λ¬Άμ–΄ ν‘œν˜„ν•œλ‹€.

let evens = [2, 4, 6, 8, 10];
  • [...] : λ°°μ—΄ λ¦¬ν„°λŸ΄
  • Elements of array(λ°°μ—΄μ˜ μš”μ†Œ) : λ°°μ—΄ κ°’ ν•˜λ‚˜, (예: 2, 4, 6, 8, 10)
  • Index(인덱슀, μš”μ†Œ 번호) : λ°°μ—΄ μš”μ†Œμ— 맀긴 번호, λ°°μ—΄μ˜ 첫 번째 μš”μ†ŒλŠ” 인덱슀 0, 두 번째 μš”μ†ŒλŠ” 인덱슀 1, λ§ˆμ§€λ§‰ μš”μ†ŒλŠ” λ°°μ—΄μ˜ length 속성 κ°’μ—μ„œ 1을 λΊ€ 값에 μœ„μΉ˜

πŸ“Œ λ°°μ—΄ λ¦¬ν„°λŸ΄μ˜ λŒ€κ΄„ν˜ΈλŠ” μ½”λ“œ 블둝을 μ˜λ―Έν•˜λŠ” 것이 μ•„λ‹ˆλΌ κ°’μœΌλ‘œ ν‰κ°€λ˜κΈ° λ•Œλ¬Έμ— λ‹«λŠ” κ΄„ν˜Έ λ’€μ—λŠ” μ„Έλ―Έμ½œλ‘ (;)을 λΆ™μž„

let empty = [];
console.log(empty); // (0) []

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

let various = [3.14, "pi", true, { x: 1, y: 3 }, [1, 3, 5, 7]];
  • λ°°μ—΄ λ¦¬ν„°λŸ΄ μ•ˆμ— μ–΄λ– ν•œ μš”μ†Œλ„ μž‘μ„±ν•˜μ§€ μ•ŠμœΌλ©΄ 빈 배열이 생성 됨
  • λ°°μ—΄μ˜ μš”μ†Œμ—λŠ” λ³€μˆ˜μ™€ λ§ˆμ°¬κ°€μ§€λ‘œ λͺ¨λ“  νƒ€μž…μ΄ 올 수 있음

length property

  • λ°°μ—΄ μš”μ†Œμ˜ μ΅œλŒ€ 인덱슀 κ°’ + 1
  • λ°°μ—΄μ˜ 길이라고 뢀름
let evens = [2, 4, 6, 8, 10];
console.log(evens.length); // 5

evens.length = 2;
console.log(evens); // (2) [2, 4]

πŸ“Œ ν˜„μž¬ λ°°μ—΄μ˜ μš”μ†Œ κ°œμˆ˜λ³΄λ‹€ μž‘κ³  0보닀 큰 μ •μˆ«κ°’μ„ λŒ€μž…ν•˜λ©΄ λ°°μ—΄μ˜ 길이 쀄어듦과 λ™μ‹œμ— λ°°μ—΄ 길이λ₯Ό λ„˜λŠ” 인덱슀 λ²ˆν˜Έμ— ν• λ‹Ήλœ λ°°μ—΄ μš”μ†ŒλŠ” μ‚­μ œλ¨

Reference

let years = [2023, 2024, 2025];
console.log(years[1]); // 2024
console.log(years[2] == years["2"]); // true
console.log(years["2"] == years["02"]); // false
console.log(years[4]); // undefined
  • 인덱슀λ₯Ό ν™œμš©ν•˜μ—¬ λ°°μ—΄ μš”μ†Œ μ°Έμ‘°
  • λ°°μ—΄ μš”μ†Œ 번호둜 숫자 κ°’ λŒ€μ‹  λ¬Έμžμ—΄ μ‚¬μš© κ°€λŠ₯
  • years['2']만이 μ‹€μ œ λ°°μ—΄ 인덱슀이고, years['02']λŠ” λ°°μ—΄ μˆœνšŒμ—μ„œ λ°©λ¬Έλ˜μ§€ μ•ŠλŠ” μž„μ˜μ˜ λ¬Έμžμ—΄ μ†μ„±μž„

πŸ“Œ years[2]의 2λŠ” JavaScript 엔진에 μ˜ν•΄ μ•”μ‹œμ  toString λ³€ν™˜μ„ 톡해 λ¬Έμžμ—΄λ‘œ κ°•μ œ λ³€ν™˜λ¨

Push() , Delete

let arr = ["A", "B", "C"];
arr[3] = "D";
console.log(arr); // (4) ['A', 'B', 'C', 'D']

arr.push("E");
console.log(arr); // (5) ['A', 'B', 'C', 'D', 'E']

delete arr[1];
console.log(arr); // (5) ['A', …, 'C', 'D', 'E']

console.log(arr[5]); // undefined
  • push() : λ°°μ—΄μ˜ 끝에 ν•˜λ‚˜ μ΄μƒμ˜ μš”μ†Œλ₯Ό μΆ”κ°€ν•˜κ³ , λ°°μ—΄μ˜ μƒˆλ‘œμš΄ 길이λ₯Ό λ°˜ν™˜
  • delete() : νŠΉμ • λ°°μ—΄μ˜ μš”μ†Œ μ‚­μ œ, λ°°μ—΄μ˜ length property 값은 λ°”λ€Œμ§€ μ•ŠμŒ
  • μ—†λŠ” λ°°μ—΄ μš”μ†Œλ₯Ό 읽으렀고 μ‹œλ„ν•˜λ©΄ undefined λ°˜ν™˜

πŸ“Œ 배열은 Array 객체이며 객체둜 λ°°μ—΄μ˜ κΈ°λŠ₯을 κ°€μƒμœΌλ‘œ 흉내 λ‚Έ 것이며, Array κ°μ²΄λŠ” λ°°μ—΄μ˜ 인덱슀λ₯Ό λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•΄μ„œ 그것을 ν”„λ‘œνΌν‹°λ‘œ μ΄μš©ν•¨
객체에 μ—†λŠ” ν”„λ‘œνΌν‹°λ₯Ό 읽으렀고 μ‹œλ„ν•˜λ©΄ undefined λ°˜ν™˜ 됨

Sparse Table(ν¬μ†Œ λ°°μ—΄)

Sparse Table(ν¬μ†Œ λ°°μ—΄)은 λ°°μ—΄μ˜ μš”μ†Œλ₯Ό μΆ”κ±°ν•˜κ±°λ‚˜ μ œκ±°ν•˜λ©΄μ„œ λ°°μ—΄ μ›μ†Œμ˜ μœ„μΉ˜κ°€ 연속적이지 μ•Šμ€ 배열이닀.

let arr = ["A", "B", "C"];
arr[4] = "E";
console.log(arr); // (5) ['A', 'B', 'C', …, 'E']
  • ν¬μ†Œ λ°°μ—΄μ˜ κΈΈμ΄λŠ” λ°°μ—΄ μš”μ†Œμ˜ κ°œμˆ˜λ³΄λ‹€ 큼

λ°°μ—΄ μš”μ†Œκ°€ μžˆλŠ”μ§€ ν™•μΈν•˜λŠ” 방법 :

  • for/in λ¬Έ
  • hasOwnProperty()
for (let i in arr) console.log(i); // 0 1 2 4
console.log(arr.hasOwnProperty("3")); // false
console.log(arr.hasOwnProperty("1")); // true

Array - Constructor

μƒμ„±μžλ₯Ό ν™œμš©ν•˜μ—¬ λ°°μ—΄ 생성

let evens = new Array(2, 4, 6, 8, 10); // [2, 4, 6, 8, 10]을 생성
let empty = new Array(); // 빈 λ°°μ—΄ []을 생성
let various = new Array(3.14, "pi", true, { x: 1, y: 3 }, [1, 3, 5, 7]);

let arr = new Array(3);
console.log(arr.length); // 3

πŸ“Œ λ°°μ—΄ μƒμ„±μžμ˜ μΈμˆ˜κ°€ ν•œ 개고 κ·Έ 값이 μ–‘μ˜ μ •μˆ˜μ΄λ©΄ μΈμˆ˜λŠ” λ°°μ—΄μ˜ 길이λ₯Ό λœ»ν•˜κ²Œ 됨



μ°Έκ³ λ¬Έν—Œ,
μ΄μ†Œ νžˆλ‘œμ‹œ, γ€Žλͺ¨λ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ μž…λ¬Έγ€, μ„œμž¬μ› μ—­, κΈΈλ²—, 2019
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array

profile
μ‚¬μš©μž κ²½ν—˜ ν–₯상과 지속적인 μ„±μž₯을 μΆ”κ΅¬ν•˜λŠ” ν”„λ‘ νŠΈμ—”λ“œ 개발자 ΚšΘ‰Ιž

0개의 λŒ“κΈ€