10 이상
의 요소만 새로운 배열로 반환하는 함수를 작성해주세요.const numbers = [10,3,55,4,1,0];
function getOverTenItems() { }
console.log(getOverTenItems(numbers)) // [10,55]
function getOverTenItems(arry) {
let result = arry.filter((item) => item >= 10);
return result;
}
배열 메서드 중 가장 먼저 떠올라 작성했던 코드!
맨 처음엔 함수 안에 result변수를 선언하지 않고 filter메서드 코드만 적었더니 값이 undefind가 나왔다 (return값이 없으니 당연 😹) result값을 선언해주고, return값을 result로 줬더니 값이 아주 잘 나왔다! 👍🏻
function getOverTenItems(arry) {
let result = [];
arry.forEach((element) => {
if (element >= 10) {
result.push(element);
}
});
return result;
}
워낙 for문에만 익숙해져 있던 터라 forEach문을 쓰는데 낯설었다..!!
그래도 배운것을 생각하고 코드를 적으니 값은 그뤠잇! ⭐️
function getOverTenItems(arry) {
const result = [];
arry.map((i) => {
if (i >= 10) {
result.push(i);
}
});
return result;
}
for문 대신 여러 반복문에 익숙해지자!
function getOverTenItems(arry) {
let result = arry.reduce((prev, cur) => {
if (cur >= 10) {
prev.push(cur);
}
return prev;
}, []);
return result;
}
filter와 같은 이유로 다 짜놓고 값을 return해주지 않아서 한참을 헤매고 있었다 😡
result값을 할당해 줘야 return을 받는거다!!! 제발 기억하자 호정아 ㅜㅜ
const dohee = { 제주도: 2, 부산: 1, 전주: 1, 속초: 1 };
const hojung = { 제주도: 1, 일본: 1 };
function checkNumberOfVisits(Obj) {}
console.log(checkNumberOfVisits(dohee)); // true
console.log(checkNumberOfVisits(hojung)); // false
function checkNumberOfVisits(Obj) {
let sum = 0;
for (let key in Obj) {
sum += Obj[key];
}
return sum >= 5;
}
대괄호 표기법 :obj["property"] 대괄호 표기법이 기억나지 않아 한참을 고민했었다... obj TIL을 다시 복습하고 나서야 기억이 나 풀었던 문제 ㅜㅜ 🤯 복습도 복습이지만 TIL에 정리해놔서 금방 기억할 수 있었다!
function caculator(operator, num1, num2) {}
console.log(caculator("+", 10, 2)); // 12
console.log(caculator("1", 1, 5)); // 'Error'
function caculator(operator, num1, num2) {
switch(operator){
case "+":
return num1+num2;
break;
case "-":
return num1-num2;
break;
case "*":
return num1+num2;
break;
case "/":
return num1/num2;
break;
default:
return "Error";
break;
}
}
console.log(caculator("+", 10, 2)); // 12
console.log(caculator("1", 1, 5)); // 'Error'
switch문을 너무 오랜만에 써봤더니 잠시 주춤했다..ㅎㅎ 그래도 어느정도 반복하니 쉽게 풀었던 문제!
함수와 switch문을 알고있다면 쉽게 풀 수 있는 문제였다 ! 😇
function getLastChar(txt) {}
console.log(getLastChar("안녕하세요!")); // !
function getLastChar(txt) {
const arry = txt.split("");
return arry[arry.length - 1];
}
먼저 문자열을 배열로 바꿔 준 다음, 해당 배열의 가장 마지막 인덱스를 return해주었더니 마지막 문자열이 찍혔다! 배열 메서드 짱짱 💪🏻
function getLastChar(txt) {
const chartxt = txt[txt.length - 1];
return chartxt;
}
문자열에서도 length를 쓸 수 있다!!! 🙆🏻♀️
배열의 길이만 length를 쓸 수 있는것이 아니다~! 문자열에서도 길이값을 반환 할 수 있다는 것! 기억하자!
참고 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/length
function getKeys(Obj) {}
const travelPlace = { 제주도: 2, 부산: 1, 전주: 1, 속초: 1 };
console.log(getKeys(travelPlace)); // ['제주도', '부산', '전주', '속초']
function getKeys(Obj) {
const keys = [];
for (let key in Obj) {
keys.push(key);
}
return keys;
}
객체에서는 for/in문이 유용하게 쓰인다 ㅎㅎ 앞 문제에서 풀었던 풀이라 그런지 술술 풀렸다!
console.log(Object.keys(travelPlace)); // ['제주도', '부산', '전주', '속초']
사실 이 문제는 전에 Object TIL을 정리했었을때 다뤘던 문제이다.
그때에도 for/in문과 Object.keys메서드를 사용해서 비교했었는데 이 문제는 함수를 만드는 문제이기 때문에 여기서는 for/in문을 쓰는것이 맞다!
매서드를 사용하여 값을 도출해내는 것도 좋지만 문제를 잘 파악해야한다!
또한, 메서드의 뿌리는 모두 기본 지식이므로, 메서드에 익숙해져 있더라고 기본 뿌리를 잊지 말자! (if문과 for문 같은 기본적인 제어문과 반복문들,,,)