정의되지 않습니다. 코드는 함수없이 작동합니다. 내가 도대체 뭘 잘못하고있는 겁니까?javascript reduce gets undefined
var myArr = [ 1, 2, 3, 4, 5 ];
function getSums(arr) {
arr.reduce(a => a+1, 0);
}
document.write(getSums(myArr));
정의되지 않습니다. 코드는 함수없이 작동합니다. 내가 도대체 뭘 잘못하고있는 겁니까?javascript reduce gets undefined
var myArr = [ 1, 2, 3, 4, 5 ];
function getSums(arr) {
arr.reduce(a => a+1, 0);
}
document.write(getSums(myArr));
세 가지 문제 : 어큐뮬레이터, 현재 항목 :
reduce
를 사용하여, 당신은 (적어도) 처음 이 인수를 사용합니다. (다른 인수도 있지만 처음 두 개는 가장 자주 사용되는 인수입니다.)
논리가 a + 1
이고 배열에서 값을 함께 추가하지 않으면이 값에 1
이 추가됩니다. 그 입장.
당신은 반환 당신의 getSums
함수에서 reduce
에 의해 반환되는 값이 필요합니다.
그래서 :
var myArr = [ 1, 2, 3, 4, 5 ];
function getSums(arr) {
return arr.reduce((sum, a) => sum + a, 0);
//^^^^^^ ^^^^ ^ ^^^^^^
}
console.log(getSums(myArr));
아니면 간결한 함수 본문 사용하는 경우는 화살표 구문을 사용하여 getSums
정의 할 수 있습니다, 다음 반환 암시 될 것이다 :
을
var myArr = [ 1, 2, 3, 4, 5 ];
let getSums = arr => arr.reduce((sum, a) => sum + a, 0);
console.log(getSums(myArr));
wrapper가 ' t를 제외하고. – ftor
@ LUH3417 :'reduce' ** 콜백은 항상 누산기를 받아들입니다. 이것은 첫 번째 인수입니다. 우리가 '0'을이 특별한 경우의 호출에서 떼어 놓을 수 있다는 것은 사실입니다. 왜냐하면 합계 연산이기 때문입니다. 나는 보통 그것을 갖는 명확성을 선호하지만, 스타일의 것입니다. –
함수에서 '반환'해야합니다. –
@nenad 이것은 화살표 함수이며 기본적으로 RETURN이 있습니다. –
'getSums'는 화살표 함수가 아닙니다. – JJJ