# * Learning JavaScript - λ°°μ΄ 3νΈ
μ΄ ν¬μ€ν μ Learning JavaScriptμ 8μ₯(λ°°μ΄κ³Ό λ°°μ΄ μ²λ¦¬)μ μ°Έκ³ νμ¬ μμ± λμλ€.
# μμ λκ±°λ μ μλμ§ μμ μμλ€
Array λ©μλλ μμ λκ±°λ μ μλμ§ μμ μμλ€μ λ€λ£° λ μ’ λΉνΉμ€λ½κ² λμνκ³€ νλ€. map
κ³Ό filter
, reduce
λ μμ λκ±°λ μ μλμ§ μμ μμλ€μμ μ½λ°± ν¨μλ₯Ό νΈμΆνμ§ μλλ€.
μλ₯Ό λ€μ΄ ES5μμ λ°°μ΄μ μ΄κΈ°νν λ λ€μκ³Ό κ°μ λ°©λ²μ μλν΄ λ³΄κ³ μ€λ§νλ μ¬λλ μμ κ²μ΄λ€.
const arr = Array(10).map(function(x) { return 5 });
arr
μ μμλ μ λΆ undefined
μ΄λ€. μ΄μ λΉμ·νκ², λ°°μ΄ μ€κ°μ μμλ₯Ό μμ νκ³ map
μ νΈμΆνλ©΄ λ°°μ΄ κ°μ΄λ° ꡬλ©μ΄ μκΈ΄λ€.
const arr = [1, 2, 3, 4, 5];
delete arr[2];
arr.map(x => 0); // [0, 0, undefined, 0, 0]
2
3
μΌλ°μ μΌλ‘ λ°°μ΄μ λ€λ£° λλ λͺ¨λ μμκ° λͺ
μμ μΌλ‘ μ μλ λ°°μ΄μ λ€λ£¨κ³ , μλμ μΌλ‘ λ°°μ΄μμ λΉ λΆλΆμ λ§λ λ€ νλλΌλ λ°°μ΄μ delete
λ₯Ό μ°μ§λ μμ ν
λ νμ€μ μΌλ‘λ μ΄λ° λμμ΄ λ¬Έμ λ₯Ό μΌμΌν¬ κ°λ₯μ±μ κ±°μ μλ€.
νμ§λ§ μμλ¬μ λμ κ²μ μλ€.
# λ¬Έμμ΄ λ³ν©
λ°°μ΄μ λ¬Έμμ΄ μμλ€μ λͺλͺ ꡬλΆμλ‘ ν©μΉλ € ν λκ° λ§λ€. Array.prototype.join
μ κ°λ³μλ‘ κ΅¬λΆμ νλλ₯Ό λ°κ³ μμλ€μ νλλ‘ ν©μΉ λ¬Έμμ΄μ λ°ννλ€.
μ΄ λ§€κ°λ³μκ° μλ΅λμ λμ κΈ°λ³Έκ°μ μΌνμ΄λ©°, λ¬Έμμ΄ μμλ₯Ό ν©μΉ λ μ μλμ§ μμ μμ, μμ λ μμ, null
, undefined
λ λͺ¨λ λΉ λ¬Έμμ΄λ‘ μ·¨κΈνλ€.
const arr = [1, null, 'hello', 'world', true, undefined];
delete arr[3];
arr.join();
// '1,,hello,,true'
arr.join('');
// '1hellotrue'
arr.join(' -- ');
// '1 -- -- hello -- -- true --'
2
3
4
5
6
7
8
9
10
λ¬Έμμ΄ λ³ν©κ³Ό Array.prototype.join
μ ν¨κ» μ°λ©΄ HTML <ul>
리μ€νΈ κ°μ κ²λ λ§λ€ μ μλ€. μ΄λ λΉ λ°°μ΄μ μ¬μ©νλ©΄ λΉ <li>
μμ νλλ§ λμ¬ κ²μ΄λ€.
const attributes = ['Nimble', 'Perceptive', 'Generous'];
const html = '<ul><li>' + attributes.join('</li><li>') + '</li></ul>';
// html: "<ul><li>Nimble</li><li>Perceptive</li><li>Generous</li></ul>"
2
3
# μμ½
μλ°μ€ν¬λ¦½νΈ Array
ν΄λμ€μλ κ°λ ₯νκ³ μ μ°ν λ©μλκ° λ§μ§λ§, λλ‘λ μ΄λ€ λ©μλκ° μ΅μ μΌμ§ νλ¨νκΈ° μ΄λ €μΈ λλ μλ€. λ€μ νλ€μ Array
λ©μλλ₯Ό μμ½ν κ²μ΄λ€.
μ½λ°± ν¨μλ₯Ό λ°λ find, findIndex, some, every, map, filter, reduce
μμ μ½λ°± ν¨μκ° μ 곡λ°λ 맀κ°λ³μλ μλμ κ°λ€.
λ°°μ΄ ν¨μμ 맀κ°λ³μ(μμλλ‘)
λ©μλ | μ€λͺ |
---|---|
reduceμλ§ μ μ© | λμ κ°. μ΄κΉκ° λλ λ§μ§λ§ νΈμΆμμ λ°νν κ° |
λͺ¨λ λ©μλ | μμ(νμ¬ μμμ κ°) |
λͺ¨λ λ©μλ | νμ¬ μμμ μΈλ±μ€ |
λͺ¨λ λ©μλ | λ°°μ΄ μ체 |
μ½λ°±μ λ°λ λ©μλλ€μ λν μ΅μ
μΌλ‘ μ½λ°±μ νΈμΆν λ this
λ‘ μ¬μ©ν κ°μ λ°μ μ μλ€. μ΄ λ§€κ°λ³μλ₯Ό νμ©νλ©΄ μ½λ°± ν¨μλ₯Ό λ©μλμ²λΌ μ¬μ©ν μ μλ€.
λ°°μ΄ μ½ν μΈ μ‘°μ
νκ³ μΆμ μΌ | μ¬μ©ν λ©μλ | μμ λλ μ¬λ³Έ |
---|---|---|
μ€ν(νμ μ μΆ)μ λ§λ€ λ | push(λ°λ κΈΈμ΄ λ°ν) , pop | λ°°μ΄ μμ |
ν(μ μ μ μΆ)λ₯Ό λ§λ€ λ | unshift(λ°λ κΈΈμ΄ λ°ν) , shift | λ°°μ΄ μμ |
μ¬λ¬ μμλ₯Ό λ°°μ΄ λ§μ§λ§μ μΆκ°ν λ | concat | μ¬λ³Έ λ°ν |
λ°°μ΄ μΌλΆκ° νμν λ | slice | μ¬λ³Έ λ°ν |
μμμ μμΉμ μμλ₯Ό μΆκ°νκ±°λ μ κ±°ν λ | splice | λ°°μ΄ μμ |
λ°°μ΄ μμμ μμλ₯Ό κ΅μ²΄ν λ | copyWithIn | λ°°μ΄ μμ |
λ°°μ΄μ μ±μΈ λ | fill | λ°°μ΄ μμ |
λ°°μ΄μ λ°λλ‘ μ λ ¬ν λ | reverse | λ°°μ΄ μμ |
λ°°μ΄μ μ λ ¬ν λ | sort(μ λ ¬ ν¨μ μ¬μ© κ°λ₯) | λ°°μ΄ μμ |
λ°°μ΄ κ²μ
μ°Ύκ³ μ νλ κ² | μ¬μ©ν λ©μλ |
---|---|
μμμ μΈλ±μ€ | indexOf(λ¨μν κ°) , findIndex(볡μ‘ν κ°) |
μΈλ±μ€λ₯Ό λ€μμλΆν° μ°Ύμ λ | lastIndexOf(λ¨μν κ°) |
μμ μ체 | find |
쑰건μ λ§μ‘±νλ μμκ° λ€μ΄μλμ§ νμΈν λ | some |
λͺ¨λ μμκ° κ·Έ 쑰건μ λ§μ‘±νλμ§ νμΈν λ | every |
λ°°μ΄ λ³ν
νκ³ μΆμ μΌ | μ¬μ©ν λ©μλ | μμ λλ μ¬λ³Έ |
---|---|---|
λ°°μ΄μ λͺ¨λ μμλ₯Ό λ³νν λ | map | μ¬λ³Έ λ°ν |
쑰건μ λ§λ μμλ§ λ¨κΈΈ λ | filter | μ¬λ³Έ λ°ν |
λ°°μ΄ μ 체λ₯Ό λ€λ₯Έ λ°μ΄ν° νμ μΌλ‘ λ³νν λ | reduce | μ¬λ³Έ λ°ν |
μμλ₯Ό λ¬Έμμ΄λ‘ λ°κΏμ νλλ‘ ν©μΉ λ | join | μ¬λ³Έ λ°ν |