
다시 시작하는 자바스크립트 - 배열 퀴즈2(고차함수)Javascript2023. 3. 22. 09:40
Table of Contents
728x90
반응형
헷갈리는 것들만 따로 정리할 예정.
deep dive 책을 함께 공부함.
배열 퀴즈에서 사용했던 문제들을 고차함수 식으로 풀어볼 거임.
그러고보니 문제 2번은 이미 고차함수로 바꿨다는 사실이...(쨋든 시작)
- 퀴즈 1
주어진 배열 안의 딸기 아이템을 키위로 교체하는 함수를 만들기
단, 주어진 배열을 수정하지 않도록!
- input: ['🍌', '🍓', '🍇', '🍓']
- output: [ '🍌', '🥝', '🍇', '🥝' ]
function replace(array) {
return array.map((fruit)=> {
if(fruit === "🍓") {
return fruit === "🥝";
} else {
return fruit;
}
});
}
const fruits = ['🍌', '🍓', '🍇', '🍓'];
result = replace(fruits);
console.log(fruits);
// ['🍌', '🍓', '🍇', '🍓']
console.log(result);
// [ '🍌', '🥝', '🍇', '🥝' ]
이걸 삼항연산자로 만들 수도 있음.
function replace(array) {
return array.map((fruit) => fruit === "🍓" ? fruit = "🥝" : fruit)
}
const fruits = ['🍌', '🍓', '🍇', '🍓'];
result = replace(fruits);
console.log(fruits);
// ['🍌', '🍓', '🍇', '🍓']
console.log(result);
// [ '🍌', '🥝', '🍇', '🥝' ]
이제 마지막으로 재사용이 가능하게끔 코드를 작성해보겠음.
function replace(array, from, to) {
return array.map((fruit) => {
if(fruit === from) {
return fruit = to;
} else {
return fruit;
}
});
}
const fruits = ['🍌', '🍓', '🍇', '🍓'];
result = replace(fruits, "🍓", "🥝");
console.log(fruits);
// ['🍌', '🍓', '🍇', '🍓']
console.log(result);
// [ '🍌', '🥝', '🍇', '🥝' ]
- 퀴즈 2
배열과 특정한 요소를 전달받아, 배열 안에 그 요소가 몇 개나 있는지 카운트하는 함수 만들기
- input : [ '🍌', '🥝', '🍇', '🥝' ], '🥝'
- output : 2
function counter(array, item) {
return array.reduce((sum, fruit) => {
if(fruit === item){
sum++;
}
return sum;
}, 0);}
const array2 = [ '🍌', '🥝', '🍇', '🥝' ];
result = counter(array2, "🥝");
console.log(array2);
// [ '🍌', '🥝', '🍇', '🥝' ]
console.log(result);
// 2
2번은 이미 예전에 풀었기 때문에 복사...!
- 퀴즈 3
배열1, 배열2 두 개의 배열을 전달 받아, 배열1 아이템 중 배열2에 존재하는 아이템만 담고 있는 배열 반환
- input : [ '🍌', '🥝', '🍇' ], [ '🍌', '🍓', '🍇', '🍓' ]
- output : [ '🍌', '🍇' ]
function match(array1, array2) {
return array1.filter((fruit) => array2.includes(fruit));
}
const fruits1 = [ '🍌', '🥝', '🍇' ];
const fruits2 = [ '🍌', '🍓', '🍇', '🍓' ];
result = match(fruits1, fruits2);
console.log(array1, array2);
// [ '🍌', '🥝', '🍇' ], [ '🍌', '🍓', '🍇', '🍓' ]
console.log(result);
// [ '🍌', '🍇' ]
고차함수 filter() 사용...!
- 퀴즈 4
5 이상의 숫자들의 평균을 구하기
- input : [ 3, 16, 5, 25, 4, 34, 21 ]
function average(array) {
return array
.filter((num) => num >= 5)
.reduce((avg, num, _, array) => avg + num / array.length, 0);
}
const nums = [ 3, 16, 5, 25, 4, 34, 21 ];
result = average(nums);
console.log(nums);
// [ 3, 16, 5, 25, 4, 34, 21 ]
console.log(result);
// 20.2
728x90
반응형
'Javascript' 카테고리의 다른 글
프로그래머스 자바스크립트 피자 나눠 먹기 (2) (0) | 2023.03.29 |
---|---|
다시 시작하는 자바스크립트 - TodoList (0) | 2023.03.26 |
다시 시작하는 자바스크립트 - 배열 퀴즈 (0) | 2023.03.22 |
다시 시작하는 자바스크립트 - 배열 (0) | 2023.03.20 |
다시 시작하는 자바스크립트 - 내장객체 퀴즈 (0) | 2023.03.19 |
@min' :: 개발을 하자
github : https://github.com/dnjfht
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!