25.
์ซ์ ๋ฐฐ์ด ์์๋ค์ ํ๊ท
function computeAverageOfNumbers(arr) {
if (arr.length === 0) return 0
let sum = arr.reduce((acc, cur) => acc + cur)
return sum / arr.length
}
26.
๊ฐ์ฒด๋ฅผ ์์๋ก ๊ฐ๋ ๋ฐฐ์ด๊ณผ ๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ ๊ฐ ์์์ 'animal' ์์ฑ๊ฐ์ด ๋ฌธ์์ด๊ณผ ์ผ์นํ ๊ฒฝ์ฐ, ํด๋น ์์์ 'score' ์์ฑ๊ฐ์ ๋ชจ๋ ๋ํ ๊ฐ์ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
<์คํจ ์ฝ๋>
function calculateScore(records, value) {
let equals = records.filter(function(el){
if (el === value) return true
})
return equals.reduce((acc, cur) => acc.score + cur.score)
}
ํํฐ๋ฅผ ์ด์ฉํด์ value์ el์ด ๊ฐ์ ๋๋ฅผ ๊ฑธ๋ฌ๋ด๊ณ , ๊ทธ ๋ฐฐ์ด์ ํฉ์ ๊ตฌํ๋ค๊ณ ์๊ฐํ๋๋ฐ.. ์ํผ ๋ต์ด ์๋์๋ค.
๊ณ์ ๋น๋ฐฐ์ด์ ์ถ๋ ฅํ๋ ๊ฒฐ๊ณผ๊ฐ ๋์ด
function calculateScore(records, value) {
let sum = records.reduce(function(acc, obj){
if (value === obj.animal) {
return acc + obj.score
} else {
return acc
}
}, 0);
return sum;
}
์ฑ๊ณตํ ์ฝ๋
acc ์๋ค๊ฐ ๋ํ๋ค๋๊ฒ ์์ง ๋ช ํํ ์ดํด๋ ๊ฐ์ง ์์.. ๊ทธ๋ฆฌ๊ณ 0) ๋ค๋ sum๋ค์ ; ์ฐ์ง ์์์ ๋ ์ฝ๋์ ์ค๋ฅ๊ฐ ์๊ฒผ๋ค
// acc๋ ์ฝ๋ฐฑ์ ๋ฐํ๊ฐ์ ๊ณ์ ๊ณ์ ๋์ ํ๋ ๊ฒ..
function calculateScore(records, value) {
const sum = records.reduce((acc, obj) =>
value === obj.animal ? acc + obj.score : acc, 0)
return sum;
}
์ผํญ์ฐ์ฐ์๋ฅผ ์ด์ฉํด์ ์ค์๋ค.
์ด๊น๊ฐ์ ์ค์ ํด์ฃผ์ง ์์๋๋ ๋๋ถ๋ถ ํต๊ณผํ์ง ๋ชปํ์. ์ ๋ค์๋ ์ด๊น๊ฐ์ผ ์ค์ ํด ์ค ์ ์์๊ณ , ๊ผญ ํด์ฃผ์ด์ผํ๋ฐ!
27.
๋ฌธ์์ด์ ์์๋ก ๊ฐ๋ ๋ฐฐ์ด์ ์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด์์ ๊ฐ์ฅ ๊ธด ๋ฌธ์์ด์ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
function getLongestElement(arr) {
if (arr.length === 0) {return ''}
let result = arr.reduce(function(i, j){
if (i.length >= j.length){
return i
} else {
return j
}
})
return result
}
์ฒ์์ ์ง๊ด์ ์ผ๋ก ์ ์๋ ์ฝ๋. ๋ฌผ๋ก ์ ๋ถ ํต๊ณผ๋ ํ๋ค
๋น๋ฐฐ์ด์ผ ๋์ ์ถ๋ ฅ๊ฐ์ ๋ฐ๋ก ์ ์ด์ฃผ๊ณ , reduce ํจ์๋ฅผ ์ด์ฉํด์ ์ ๋ฌธ์์ด, ๋ท ๋ฌธ์์ด ๋น๊ตํด ์ถ๋ ฅ
function getLongestElement(arr) {
let result = arr.reduce((i, j) =>
i.length >= j.length ? i : j, '')
return result
}
๋ ๋ฒ์งธ ์ฝ๋. ๋น ๋ฐฐ์ด์ ์ถ๋ ฅ๊ฐ์ ๋ฐ๋ก ์ ์ด์ฃผ์ง ์๊ณ ์ด๊น๊ฐ์ '' ๋ก ์ค์ ํ๋ค.
์ ์ด๊น๊ฐ์ด '' ์ด๋ฉด ๋น ๋ฐฐ์ด์ผ ๋ ๋น ๋ฌธ์์ด์ ์ ๋ ฅํด์ฃผ๋ ๊ฐ..
function getLongestElement(arr) {
return arr.reduce((i, j) => i.length >= j.length ? i : j, '')
}
๊ทผ๋ฐ ๊ผญ ๊ฒฐ๊ด๊ฐ์ ๋ณ์๋ก ์ง์ ํ ํ์๊ฐ ์์์? ํด์ ๋ฐ๋ก ๋ฆฌํด์ผ๋ก ๋นผ๋๋ค
28.
๋ฌธ์์ด์ ์์๋ก ๊ฐ๋ ๋ฐฐ์ด์ ์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด์์ ๊ฐ์ฅ ๊ธด ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
<ํ๋ฆฐ ์ฝ๋>
function getLengthOfLongestElement(arr) {
let result = arr.reduce((acc, cur) =>
acc.length >= cur.length ? acc.length : cur.length, 0)
return result
}
์ฒซ ๋ฒ์งธ ๊ฑฐ๋ ํด๋ฆฌ์ดํ๋๋ฐ,
์ด์ํ๊ฒ๋ ๋ ๋ฒ์จฐ ๊ฑฐ๋ฅผ ํต๊ณผํ์ง ๋ชปํ๊ณ 2๋ฅผ ์ถ๋ ฅํ๋ค
์ 2๋ฅผ ์ถ๋ ฅํ์๊น.. ์๋ฌธ ใ ใ ...
<๋ ํผ๋ฐ์ค ์ฝ๋>
function getLengthOfLongestElement(arr) {
if (arr.length === 0) {
return 0;
}
return arr.reduce(function (acc, cur) {
if (acc.length >= cur.length) {
return acc;
} else {
return cur;
}
}).length;
}
29.
2์ฐจ์ ๋ฐฐ์ด(๋ฐฐ์ด์ ์์๋ก ๊ฐ๋ ๋ฐฐ์ด)์ ์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด๋ค์ ์์๋ฅผ ๋ชจ๋ ๋ด๊ณ ์๋ ๋จ์ผ ๋ฐฐ์ด์ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
function joinArrayOfArrays(arr) {
let join = arr.reduce(function(a,b){
return a.concat(b)
})
return join
}
concat ํจ์ ์ด์ฉ.
function joinArrayOfArrays(arr) {
return arr.reduce((a,b) => a.concat(b))
}
30.
๋ฐฐ์ด์ ์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด์์ ๊ฐ์ฅ ์งง์ ๊ธธ์ด๋ฅผ ๊ฐ์ง ๋ฌธ์์ด ์์๋ฅผ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
function findShortestWord(arr) {
let stringFilter = arr.filter (el => typeof el === 'string')
if (!stringFilter.length) return ''
return stringFilter.reduce ((acc,cur) =>
acc.length <= cur.length ? acc : cur)
}
์๋นํ ์ํ์ฐฉ์ค๋ฅผ ๊ฒช์ ๋ฌธ์ ์ด๋ค.
์ผ์ผ์ด ์ฌ๊ธฐ๋ค๊ฐ ์ ์ง๋ ์์์ง๋ง,, ์ฒ์์ ๋ฐ๋ณด๊ฐ์ด ๋ฌธ์ ์ดํด๋ ๋ชปํ๊ณ ๋ฐฐ์ด๋ค์ ๋ ใฑ๋ค๊น๋ผ ๋น๊ตํ๊ณ
๋์ค์๋ ์ ์ด๊ฑฐ์ ๊ฑฐ ์์ฌ์์ผ๋๊น filter๋ก ๊ฑธ๋ฌ๋ด์ด์ผ๊ฒ ๋ค ์๊ฐํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ๋ฌธ์ ๋ ๋ ์ด๊น๊ฐ์ผ๋ก๋ ๋น๋ฐฐ์ด์ ์ถ๋ ฅํ์ง ๋ชปํ์๊ณ .. (๋์ฒด ์ด์ ๊ฐ ๋ฌด์์ธ๊ฐ..)
๋ฐ๋ก ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ ์กด์ฌํ์ง ์๋๋ค๋ฉด.. ๋น ๋ฐฐ์ด์ ์ถ๋ ฅํ๋ผ๊ณ ์ค์ ํด๋จ๋ค
31.
ํ์์ ์ ๋ณด๊ฐ ๋ด๊ธด ๊ฐ์ฒด๋ฅผ ์์๋ก ๊ฐ๋ ๋ฐฐ์ด์ ์ ๋ ฅ๋ฐ์ ์๋ ์กฐ๊ฑด์ ๋ง๊ฒ ๋ณํ๋ ๋ฐฐ์ด์ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
- ๋จํ์๋ค์ ์ ๋ณด๋ ๋ฆฌํดํ๋ ๋ฐฐ์ด์์ ์ ์ธํฉ๋๋ค.
- 'grades' ์์ฑ๊ฐ์ ํ๊ท ๊ฐ(number ํ์ )์ผ๋ก ๋ฐ๊ฟ๋๋ค.
<์ ํ๋ฆฐ ์ฝ๋>
function studentReports(students) {
let result = [];
let femaleInfo = students.filter(el => el.gender === 'female')
femaleInfo.reduce((acc, cur) => acc + cur.grades)
return result
}
<2ํธ ์คํจ>
function studentReports(students) {
let femaleInfo = students.filter(el => el.gender === 'female')
femaleInfo.map (function (el) {
let sum = el.grades.reduce (acc, cur => acc + cur, 0)
})
let final = sum / el.grades.length;
return final
}
<3ํธ ์คํจ> - ๋์ ํ ๋ชปํ๊ฒ ๋ฐ..
function studentReports(students) {
let femaleInfo = students.filter(el => el.gender === 'female')
femaleInfo.map (function (el) {
let sum = el.grades.reduce (acc, cur => acc + cur, 0)
})
let final = sum / el.grades.length;
el.grades = final
return el
}
function studentReports(students) {
const femaleInfo = students.filter(el => el.gender === 'female')
return femaleInfo.map (function (el) {
const sum = el.grades.reduce (function(acc, cur) {
return acc + cur
}, 0);
const final = sum / el.grades.length;
el.grades = final;
return el
});
}
๊ฑฐ์ ๋ ํผ๋ฐ์ค ์ฝ๋ ๋ณด๊ณ ํ์๋ค๊ณ ํด๋ ๋ฌด๋ฐฉํ๋ฐ..
map์ใ ใ return ์ด ์ ์ฐ์ฌ์ ธ์ ์์ด์ ์๋ฌด๋ฆฌ ์ฐพ์๋ ๋ฐฉ๋๋ฅผ ์ฐพ์ง ๋ชปํ๋ค..
๊ทผ๋ฐ ์ retrun ์ ์จ์ฃผ์ด์ผ ํ๋๊ฐ..?
32.
2์ฐจ์ ๋ฐฐ์ด(๋ฐฐ์ด์ ์์๋ก ๊ฐ๋ ๋ฐฐ์ด)์ ์ ๋ ฅ๋ฐ์ ๋ชจ๋ ์(number)์ ํฉ์ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
function sumOfArraysInArray(arr) {
const total = arr.reduce((a,b) => a.concat(b))
const onlyNum = total.filter(el => typeof el === 'number')
return onlyNum.reduce((acc, cur) => acc + cur, 0)
}
์ฒ์์ 'number'๋ฅผ 'Number'๋ก ์ ๊ณ ์ ์๋ฌด๋ฆฌ๋ด๋ ๋ ํผ๋ฐ์ค๋ ๋ค๋ฅธ๊ฒ ์์ด์
ํ์ดํ ํจ์ ๋ค ์ง์ฐ๊ณ function ์ ๋ ฅํ๋๋ฐ๋ ์ ๋๊ธธ๋ ์ ๋น๊ตํด๋ดค๋๋ ๊ทธ ๋ถ๋ถ์ด์์ ใ _ใ ์ฝ์ง ๊ทธ์์ฒด
'Lecture > ์ฝ๋์คํ ์ด์ธ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SEB FE] section 2 unit 3 - [JS /Node] ๋น๋๊ธฐ (0) | 2023.05.17 |
---|---|
[SEB FE] section 2 unit 2 (5) ์ข ํฉํด์ฆ, beesbeesbees (1) | 2022.09.25 |
[SEB FE] section 2 unit 2 (4) ํ๋กํ ํ์ ๊ณผ ์ฒด์ธ (1) | 2022.09.22 |
[SEB FE] section 2 unit 2 (3) ํ๋กํ ํ์ ๊ณผ ํด๋์ค (1) | 2022.09.22 |
[SEB FE] section 2 unit 2 (2) ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ (0) | 2022.09.21 |