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;
}