1부터 N까지 합 구하기
1. 1부터 n까지 정수의 합 구하기
index 값을 계속 더해준다고 생각하면 됩니다.
function solution(n) {
let answer = 0;
for (let i = 0; i <= n; i++) {
answer += i;
}
return answer;
}
console.log(solution(30)); // 465
2. 배열 값 모두 더하기
배열 값의 합은 Array의 reduce(리듀서) 메소드를 사용하면 쉽게 구할 수 있습니다.
(https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce)
reduce()는 배열 내에 존재하는 각 요소에 대해 callback 함수를 한 번씩 실행하는데, 콜백 함수는 accumulator, currentValue,
currentIndex, array의 네 인수를 받습니다.
reduce() 함수 호출에서 initialValue를 제공한 경우, accumulator는 initialValue와 같고 currentValue는 배열의 첫 번째 값과 같습니다. initialValue를 제공하지 않았다면, accumulator는 배열의 첫 번째 값과 같고 currentValue는 두 번째와 같습니다.
let arr = [20, 7, 23, 19, 10, 15, 25, 8, 13];
function sum(arr) {
let answer = 0; // answer가 initialValue로 제공. 만약 값을 20으로 변경한다면 log에는 160이 찍힘
answer = arr.reduce((acc, cur) => acc + cur, answer)
return answer;
}
console.log(sum(arr)) // 140
reduce() 예제
1) 객체 배열에서 값 합산
let init = 0;
let sum = [{age: 10}, {age: 20}, {age: 30}].reduce((acc, cur) => acc + cur.age , init)
console.log(sum) // 60
2) 중첩 배열 펼치기
let flattened = [[0, 1], [2, 3], [4, 5]].reduce((acc, cur) => acc.concat(cur),
[]
);
console.log(flattened) // [0, 1, 2, 3, 4, 5]
3) 객체 내 인스턴스 값 세기
let fruits = [
"Apple",
"Melon",
"Apple",
"Banana",
"Strawberry",
"Apple",
"Banana"
];
let fruitsObj = fruits.reduce((allFruits, fruit) => {
if (fruit in allFruits) {
allFruits[fruit]++;
} else {
allFruits[fruit] = 1;
}
return allFruits;
}, {});
console.log(fruitsObj);
4) 속성으로 grouping하기
let people = [
{ name: "Alice", age: 21 },
{ name: "Max", age: 20 },
{ name: "Jane", age: 20 }
];
function groupBy(objectArray, property) {
return objectArray.reduce(function (acc, obj) {
let key = obj[property];
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(obj);
return acc;
}, {});
}
let groupedPeople = groupBy(people, "age");
console.log(groupedPeople);
// {
// '20': [ { name: 'Max', age: 20 }, { name: 'Jane', age: 20 } ],
// '21': [ { name: 'Alice', age: 21 } ]
// }
추가 정리 필요
Bonding arrays contained in an array of objects using the spread operator and initialValue,
Remove duplicate items in an array,
Replace .filter().map() with .reduce(),
Running Promises in Sequence,
Function composition enabling piping,
Write map using reduce 등
Author And Source
이 문제에 관하여(1부터 N까지 합 구하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hyejeong/1부터-N까지-합-구하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)