νμμλ forλ₯Ό μ΄μ©ν λ°λ³΅λ¬Έμ μμ£Όλ‘ μ¬μ©νλλ° μ΅κ·Όμ **reduce()
**μ **map()
**μ μ΄μ©ν μκ³ λ¦¬μ¦ νμ΄κ° 리ν©ν λ§μ ν¨κ³Όμ μΈ κ² κ°κ³ μ΄ν΄λ λ°λ‘ μλμ΄μ μ 리νλ€!
π‘ μ΄ λ©μλλ€μ μ°λλ° κ°μ₯ μ€μν μ μ λ°°μ΄μμλ§ μ¬μ©ν μ μλ λ©μλλΌλ μ ! κ·Έλ κΈ° λλ¬Έμ λ°°μ΄μ΄ μλ κ³³μ μ¬μ©νκΈ° μν΄μλ μλμ κ°μ λ°°μ΄λ‘ λ³ννλ κ³Όμ μ΄ κΌ νμνλ€! (
split()
μ μ΄μ©)
π reduce( )
// λ°°μ΄μ κ° μμλ₯Ό μνν μ€ν κ°μ λμ ν΄μ νλμ κ²°κ³Ό κ°μ λ°ννλ λ©μλ
// arr.reduce(callbackFx, μ΄κΈ°κ°)
// μ΄κΈ°κ°μ μ€μ νμ§ μμΌλ©΄ λ°°μ΄μ 첫 λ²μ§Έ μΈλ±μ€κ° μ΄κΈ°κ°μ΄ λλ€.
// μμ 1 :: λ°°μ΄μ λͺ¨λ κ° λνκΈ°
const numbers = [1,2,3,4,5,6,7,8,9,10]
const sum = numbers.reduce((acc, cur) => acc+ cur)
console.log(sum) // 55
Array.prototype.reduce() - JavaScript | MDN
// λ°°μ΄μ λ°°μ΄ λ΄μ λͺ¨λ μμμ μ£Όμ΄μ§ ν¨μλ₯Ό νΈμΆν κ²°κ³Όλ₯Ό λͺ¨μ μλ‘μ΄ λ°°μ΄λ‘ λ°νλ λ©μλ
// arr.map((μμ, μΈλ±μ€, λ°°μ΄) => {return μμ})
const numbers = [1, 2, 3, 4, 5]
const result = numbers.map( num => num * num )
console.log(result) //[ 1, 4, 9, 16, 25 ]
Array.prototype.map() - JavaScript | MDN
// νλ ¬μ λ§μ
μ νκ³Ό μ΄μ ν¬κΈ°κ° κ°μ λ νλ ¬μ κ°μ ν, κ°μ μ΄μ κ°μ μλ‘ λν κ²°κ³Όκ° λ©λλ€.
// 2κ°μ νλ ¬ arr1κ³Ό arr2λ₯Ό μ
λ ₯λ°μ, νλ ¬ λ§μ
μ κ²°κ³Όλ₯Ό λ°ννλ ν¨μ, solutionμ μμ±ν΄μ£ΌμΈμ.
// νλ ¬ arr1, arr2μ νκ³Ό μ΄μ κΈΈμ΄λ 500μ λμ§ μμ΅λλ€
arr1 = [[1, 2], [2, 3],];
arr2 = [[3, 4], [5, 6],];
function solution(arr1, arr2) {
const answer = [[]];
for (let i = 0; i < arr1.length; i++) {
for (let j = 0; j < arr1[i].length; j++) {
const sum = arr1[i][j] + arr2[i][j];
// 0λ²μ§Έ λ°°μ΄ μ΄νμ μΈλ±μ€λ‘ μ κ·Όνλ €κ³ νλλ° κ·Έ λ°°μ΄μ΄ μλ€λ©΄ (undefined)
// κ·Έ μΈλ±μ€μ λΉ λ°°μ΄μ λ§λ€μ΄μ€λ€
if (answer[i] === undefined) {
answer[i] = [];
}
answer[i][j] = sum;
}
}
return answer;
}
// map() μ¬μ©
function solution(arr1, arr2) {
const answer = arr1.map((num1, i) => {
return num1.map((num2, j) => {
return num2 + arr2[i][j];
});
});
return answer;
}
// κΈΈμ΄κ° κ°μ λ 1μ°¨μ μ μ λ°°μ΄ a, bκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§λλ€.
// aμ bμ λ΄μ μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
// μ΄λ, aμ bμ λ΄μ μ a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] μ
λλ€.
// (nμ a, bμ κΈΈμ΄)
// a, bμ κΈΈμ΄λ 1 μ΄μ 1,000 μ΄νμ
λλ€.
// a, bμ λͺ¨λ μλ -1,000 μ΄μ 1,000 μ΄νμ
λλ€.
a = [1, 2, 3, 4];
b = [-3, -1, 0, 2];
solution(a, b); // 3
function solution(a, b) {
let answer = 0;
// a λλ bμ κ°κ°μ μμ λ°μ΄ν° κ°μ Έμ€κΈ°
// κΈΈμ΄κ° κ°μΌλ―λ‘ νλμ forλ¬Έμμ κ°μ μΈλ±μ€ κ°μΌλ‘ μ κ·Όμ΄ κ°λ₯
for (let i = 0; i < a.length; i++) {
const sum = a[i] * b[i];
answer += sum;
}
return answer;
}
// reduce() μ¬μ©
function solution(a, b) {
const answer = a.reduce((acc, cur, i) => {
return acc + cur * b[i];
}, 0);
return answer;
}
π¬ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ΄λ»κ² μ μ₯ν κ²μΈμ§ μ΄λ»κ² λλ κ²μΈμ§ κ°μ μ‘μ μ μμ κ±°μΌ!