본문 바로가기
알고리즘

[JS] 만일 reduce를 잊는다면 일어나는일

by 측면삼각근 2019. 9. 30.
728x90
반응형

문제

convert nested (2-dimensional) array to flatten array! (2차원 배열을 1차원 배열로 전환하세요.)

Examples: flatten([1,2,[3],[4]]); // [1,2,3,4]


나의 코드

function flatten (array){
  for(let i = 0 ; i < array.length ; i++){
    if(Array.isArray(array[i])){
      if(array[i].length===0){
        array.splice(i,1);
        i--;
      }else{
        let temp = array[i];
        array.splice(i,1);
        i--;
        for(let j = 0 ; j < temp.length ; j++){
          array.push(temp[j]);
        }
      }
    }
  }
  return array;
}

 


모델 솔루션

function flatten (array){
  return array.reduce(function(acc, curr) {
    return acc.concat(curr);
  }, []);
}

 


느낀점(아무말)

사실..저 문제를 풀때부터 왜이렇게 코드가 더러운걸까.. 무언가 잘못되었음을 알고있었지만,
일단 시작한것, 시작한 방식으로 답을 내고싶어서 끝까지 코딩하였다.
하지만.. 무언가 잘못되었음을 깨달았을 때 멈췄어야했다..

반응형

'알고리즘' 카테고리의 다른 글

[JS] 자료구조 - 코드 구현 전체  (0) 2019.11.27
복잡도 분석, 시간복잡도  (0) 2019.11.18
[JS] _.shuffle 구현  (0) 2019.11.17
[JS] 알파벳을 숫자로 변환하는법  (0) 2019.09.30
[JS] reduce예제  (0) 2019.09.29