μΈμ΄/Script Question
map & flat & flatMap
MellowHoney
2024. 4. 7. 14:18
728x90
λ°μν
map()
μ€λͺ
π‘ μ½λ°± ν¨μμ 리ν΄κ°μΌλ‘ μ΄λ€μ§ μλ‘μ΄ λ°°μ΄μ μμ±νλ ν¨μ
μ¬μ©λ²
array.map(callback[, thisArg])
// arr : μλ³Έ λ°°μ΄
// callback (νμ) : μλ³Έ λ°°μ΄μ κ° μμμ λν΄ μ€νν ν¨μμ΄λ©° μμ, μΈλ±μ€, λ°°μ΄ μ 체λ₯Ό λ§€κ°λ³μλ‘ λ°μ
// thisArg (μ ν) : μ½λ°± ν¨μ λ΄μμ μ¬μ©ν this κ°, μ½λ°± ν¨μμ this κ° μ§μ κ°λ₯
μμ
const arr = [1, 2, 3];
const newArr = arr.map((num) => num * 2);
console.log(newArr); // map 리ν΄κ° : [2, 4, 6]
console.log(arr); // μλ³Έ λ°°μ΄ : [1, 2, 3]
flat()
μ€λͺ
π‘ μ€μ²© λ°°μ΄ κ΅¬μ‘°λ₯Ό ννν μν€κΈ° μν΄ μ¬μ©
μ¬μ©λ²
array.flat([depth: number | Infinity]);
// depth default : 1
// option - Infinity : νμ λ°°μ΄μ΄ μμ λκΉμ§ ννν
μμ
const abc = ['a', ['b', 'c', ['d', ['e']]]]
console.log(abc.flat()); // ['a', 'b', 'c', ['d', ['e']]]
console.log(abc.flat(2)); // ['a', 'b', 'c', 'd', ['e']]
console.log(abc.flat(Infinity)); // ['a', 'b', 'c', 'd', 'e']
flatMap()
μ€λͺ
π‘ μ£Όμ΄μ§ λ°°μ΄μ κ° μμμ λν΄ μμ±λ μ½λ°± ν¨μλ₯Ό μ€ν ν ν΄λΉ μ½λ°± ν¨μμ 리ν΄κ°μ νλ©΄ννμ¬ λ¨μΌ μμ€μ μλ‘μ΄ λ°°μ΄μ μμ±νλ ν¨μ
μ¬μ©λ²
array.flatMap(callback[, thisArg])
// arr : μλ³Έ λ°°μ΄
// callback (νμ) : μλ³Έ λ°°μ΄μ κ° μμμ λν΄ μ€νν μ½λ°± ν¨μμ΄λ©° μμ, μΈλ±μ€, λ°°μ΄ μ 체λ₯Ό λ§€κ°λ³μλ‘ λ°μ
// thisArg (μ ν) : μ½λ°± ν¨μ λ΄μμ μ¬μ©ν this κ°, μ½λ°± ν¨μμ this κ° μ§μ κ°λ₯
// λ°°μ΄μ μ΅λ κΉμ΄ 1λ§νΌλ§ ννν κ°λ₯
μμ
const arr = [1, 2, 3];
/* map() */
const mapArr = arr.map((num) => [num, num * 2]);
console.log(mapArr); // map 리ν΄κ° : [[1, 2], [2, 4], [3, 6]]
/* flatMap() */
const flatMapArr = arr.flatMap((num) => [num, num * 2]);
// === arr.map((num) => [num, num * 2]).flat();
console.log(flatMapArr); // flatMap 리ν΄κ° : [1, 2, 2, 4, 3, 6]
λΉκ΅
ν¨μ | 리ν΄κ° |
map() | μ½λ°±ν¨μμ κ²°κ³Όκ°μ΄ μ μ§νκ² λ¦¬ν΄ |
flatMap() | λ¨μΌ ꡬ쑰μ λ°°μ΄μ΄λ κ°μ²΄λ₯Ό λ¦¬ν΄ |
λ°μν