ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2020.05.14 for문->reduce함수
    Dev 2020. 5. 14. 21:35

    Print a multiple of 3 or a multiple of 5 less than 1000

      // for문으로 구현해 보았다.
    let sum = 0;
    
        for(let i=1; i<1000; i+=1) {
          if (i % 3 === 0 || i % 5 === 0) {
            sum += i;
          }
        }
      // 이제 reduce로 변환해야 한다.
      // reduce함수를 쓰려면 배열이어야 가능하다.
      // 빈배열에 for문 push 메소드를 이용해, 만들어야겠다
        let array = [];
        for(let i=1; i<1000; i++){
          array.push(i);
        }
     let sum = array.reduce(function(acc,val){
          if(val%3===0 || val%5===0){
         	return acc+val;
         }
         
        });
        //NaN
        //될리가 없다.. reduce 함수의 accumulator 와 currentValue 의 형태를 조사했다.
        //디버깅 해보니, 2번째 누적값이 undefined가 되며 3번째 누적값은 당연히 NaN이 되었다.
        //undefined가 안나오게 할 수 있는 방법을 찾아봐야 한다.
        let sum = array.reduce(function(acc,val){
          if(acc%3===0 || val%3===0){
            return acc=acc+val;
          }
          return acc;
        });
        //acc = acc + val; 을 만들려고 한 3시간을 출력값을 바꿔가며 적어봤다..
        //일단 for문을 reduce함수로 제대로 변환해본 처음 문제인 것 같다.
        //다른 문제들은 없나 찾아보고, 더 풀어봐야 reduce를 배웠다고 할 수 있을 것 같다.
        

    'Dev' 카테고리의 다른 글

    Chrome debug (nested array -> flatten)  (0) 2020.05.12
    2020.05.11 Math.min()  (0) 2020.05.11
    2020.05.10 NestedArray -> flattenArray ( not used flat method)  (0) 2020.05.10
    2020.05.06 NaN in Falsy  (0) 2020.05.06

    댓글

Designed by Tistory.