TIL

2023.03.16

minnjeong 2023. 3. 16. 23:40

 

문제 1  : 중복된 숫자 개수

정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.

 

  • 나의 풀이
function solution(array, n) {
    let answer = 0;
    for(i=0; i<array.length; i++) {
        if(array[i]==n) {
            answer ++;
        } 
    }  
    return answer;
}

 

  • 다른 풀이
function solution(array, n) {
    return array.filter(v=>v===n).length;
}

 

  • 배운 것

filter : 콜백 함수*에서 리턴하는 값이 true인 것들만 모아서 새로운 배열을 만드는 함수

* 콜백 함수란? 매개변수로 전달하는 함수. 자바스크립트는 함수도 하나의 자료형이므로 매개변수로 전달할 수 있다.

 

const a = [0,1,2,3,4,5]
const b = a.filter(function (value) {
  return value % 2 === 0
})

console.log(a) // 0,1,2,3,4,5
console.log(b) // 0,2,4 짝수만 추출

function(value, index, array){} 형태로 콜백 함수를 사용하는 것이 기본이지만, value 만 활용하므로 value만 매개변수로 넣었다.

function 키워드 대신 화살표를 사용*하여 단순한 형태의 콜백 함수를 입력할 수 있다.

 

 

화살표 함수 : function 키워드 대신 =>를 사용하여 함수 생성

(매개변수)=>{

}

(매개변수)=> 리턴값

 

const a = [0,1,2,3,4,5]
const b = a.filter((value) => value * value)
 
console.log(a) // 0,1,2,3,4,5
console.log(b) // 0,1,4,9,16,25

 

 

 

 


 

 

문제 2 : 배열의 평균값

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.

 

  • 나의 풀이
function solution(numbers) {
    let sum = numbers.reduce((a,b) => (a+b));
    return sum / numbers.length;
}

 

  • 다른 풀이

 

function solution(numbers) {
    var answer = 0;
    for(i of numbers) {
        answer += i
    }
    return answer / numbers.length;

}