Retrospection/Sprint
배열 스프린트 회고 22~26
카트먼
2020. 7. 17. 12:59
22.
// 모든요소의 곱을 반환하는 함수 작성
// reduce 사용하면 될듯
function computeProductOfAllElements(arr) {
let multi = '';
if(arr.length === 0){
return 0
}
multi = arr.reduce(function(acc , cur){
return acc * cur
})
return multi;
}
23.
//아까 분명히 혼자 힘으로 풀었는데 다시푸니까 안됨 ㅠㅠ
// 딱히 배열메소드 안쓰고 풀었던 방법이 아래방법
function getLengthOfLongestElement(arr) {
let longist = '';
for(i in arr){
if(arr[i].length >= longist.length ){
longist = arr[i]
}
}
return longist.length ;
}
리듀스 메서드를 사용해서 푸는것을 문제에서는 원하는것 같다.
리듀스를 사용해서 풀어보면
function getLengthOfLongestElement(arr) {
if( arr.length === 0 ){
return 0;
}
return arr.reduce(function longist(acc , cur){
if (acc.length >= cur.length){
return acc ;
}else {
return cur;
}
}).length
}
위의 방법이 나온다
조건문을 잘 설정해야 될거같다 저부분에서 계속 실수남발 이였다 .
24.
//23번 문제랑 같음
// 문자열을 반환한다는 조건만 다를뿐. 길이를 구하는것이 아닌 그 엘레먼트 자체를 구하는거여서 더 쉬웠다.
function getLongestElement(arr) {
if(arr.length === 0){
return '';
}
return arr.reduce(function longstr(acc,cur){
if(acc.length >= cur){
return acc
}else{
return cur
}
})
}
25.
//주어진 배열중 엘리먼트의 길이가 홀수인 문자열만을 요소로 가지는 배열을 반환하는 함수 만들기
..내가 푼 방법은 아래의 방법 이였는데 문제에서 원하는 방법은 filter메소드를 사용하는 것 이였다 .
function filterOddLengthWords(words) {
let oddNumber =[];
for(i in words){
if( words[i].length %2 === 1){
oddNumber.push(words[i])
}
}
return oddNumber;
}
filter 메소드에 대한 학습을 조금 했으니 다시 풀어보았다 .
다행히 내 힘으로 코드를 완성할 수 있었다 .
function filterOddLengthWords(words) {
//길이가 홀수인 요소를 가지는 배열 반환
//filter 를 사용해서 만들어보자
return words.filter(function odd(input){
if(input.length % 2 === 1){
return input
}
})
26.
//배열이 주어졌을때 엘리먼트들의 평균을 반환하는 함수 만들기 .
// 빈배열이 주어질경우 0을 반환해야 한다 .
처음 만든 방법은 반복문으로 다 더해줘서 num.length 로 나눴다 .
function computeAverageOfNumbers(nums) {
let av = 0;
let result ='';
if(nums.length === 0){
return 0;
}else{
for(i in nums)(
av = av + nums[i]
)
result = av / nums.length ;
return result
// your code here
}
}
위의 방법보다 리듀스 메소드가 좋을것같아 다시 만들어줌
function computeAverageOfNumbers(nums) {
if( nums.length === 0){
return 0
}
let sum =
nums.reduce(function ave(arr, cur){
return arr + cur ;
})
return sum/nums.length ;
}