Retrospection/Sprint

배열메소드 스프린트 회고 16~21

카트먼 2020. 7. 17. 07:11

16.

//str안에 단어를 담고있는 배열을 반환 

// split 으로 빈문자열로 나눠주면 될듯 

//빈 문자열이 주어지면 빈 배열 반환하기 

function getAllWords(str) {
    if(str.length === 0){
        return [];
    }
   return str.split(" ");
}

 

17.

아직 못풀었다 

 

 

 

 

18.

// 매개변수와 일치하지 않는 모든 요소를 포함하는 배열을 반환하라.

//모든 요소가 일치한다면 빈배열 , 빈배열이 주어진다면 빈배열을 반환해야함 

// for 문으로 인덱스를 반복한다.

// discarder와 일치하지 않을경우 새배열에 모든 요소를 push 해주는 배열을 만들자. 

// 모든요소가 일치할때 빈배열이 반환될것이다 (굳이 따로 만들어줄 필요 없음)

// 빈배열이 주어진다면 빈배열을 반환하는 조건문은 만들어주자 (일단 없이 테스트 돌려보고 안되면 만들자 .-- 없어도 됨  )_ 

function removeElement(array, discarder) {
  let newArr = [];
  for(let i = 0; i < array.length ; i++){
    if(array[i] !== discarder){
      newArr.push(array[i]);
    }
  }
  return newArr ;
}

 

위에가 내가 만든 코드. 

filter를 이용한 코드가 레퍼런스에 나와있어 filter를 다시한번 공부해보고 그방법 으로 만들어 보겠다. 

filter도 뭔가 reduce 처럼 콜백함수를 이용한 메소드 였던것 같은데 정확한지 모르겠다. 

function removeElement(array, discarder) {
  let newArray = 
  array.filter(function (i){
    if(i !== discarder){
      return true;
    }
    return false;
  })
  return newArray
}

//filter는 true false로 결과값이 나오는 함수를 적용하여 true 인 조건만 걸러서 적용시키는 메소드이다. 

 

 

19.

//18번과 같은문제이지만 같은값을 반환하는것만 다름 

//똑같이 필터를 사용하여 풀어줌.

function keep(array, keeper) {
   let newArray =[];
   newArray = array.filter(function(el){
        if(el === keeper){
            return true
        }
        return false
    })
    return newArray 
}

 

20.

//reduce 를 사용해 숫자배열중 가장 작은 숫자  반환

function findSmallestElement(arr) {
    if(arr.length === 0){
        return 0;
    }
    return arr.reduce(function(acc, cur){
        if(acc < cur){
            return acc
        }else{
            return cur
        }
    })
}

 

21.

//reduce 메소드를 사용해서 주어진배열에  모든요소들의 합을 반환 

//이거 mdn 에 있는 예제 그대로여서 너무 쉬웠음. 

function computeSumOfAllElements(arr) {
  let sum = '';
  if(arr.length === 0){
    return 0;
  }
  sum = 
  arr.reduce(function(acc,cur){
    return acc + cur
  })
  return sum;
}