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