자바스크립트 공부했던 것을 기반으로 예제문제들을 풀어보았다. 풀면서 따로 정리하고 싶은 것들을 적어보려고 한다.
// 입력받은 문자열을 잘라서 result 값이 아래와 같이 출력되도록 함수를 완성해 보세요.
// 메소드는 slice 를 이용해 보세요.
function getToken(str) {
return str.slice(-7);
}
const result = getToken("Bearer a012345");
console.log(result); // 출력 결과: 'a012345'
=> 문자열 자르기 (substr, substring, slice)
// 아래 함수는 배열을 입력받아서 배열 요소들 중 truthy한 요소들만 필터링하여 반환합니다.
// Truthy 란 boolean type을 기대하는 문맥에서 true 로 평가되는 값을 의미합니다.
// for문과 if문을 이용하여 작성해 보세요.
function getTruthyArray(arr) {
const truthyArr = [];
for (const value of arr) {
if (value) truthyArr.push(value);
}
return truthyArr;
}
const result = getTruthyArray( [ -1, 0, "", {}, [], null, undefined, NaN ] );
console.log(result); // 출력 결과: [-1, {}, []]
=> falsy한 값과 truthy한 값
0,빈 문자열, null, undefined, NaN 은 falsy한 값으로, if문의 조건을 만족시키지 못함.
그 외의 값들은 모두 truthy한 값으로, if문의 조건을 만족시킴.
// 함수 선언문으로 정의한 foo 함수
function foo() {
console.log("함수 선언문");
}
foo(); // 출력 결과: '함수 선언문'
// "함수 표현식"을 콘솔로그로 출력하는 foo2 함수를 함수 표현식으로 만들어 보세요.
// function 키워드를 사용해 주세요.
const foo2 = function() {
console.log("함수 표현식")
}
foo2(); // 출력 결과: '함수 표현식'
// "화살표 함수"를 콘솔로그로 출력하는 foo3 함수를 화살표 함수로 만들어 보세요.
const foo3 = () => console.log("화살표 함수");
foo3(); // 출력 결과: '화살표 함수'
/* 참고로 화살표 함수 역시 변수에 함수가 할당되는 함수 표현식 입니다. */
// 아래와 같은 결과가 출력되도록 함수를 완성해 보세요.
const db = [
{
"id": 7,
"name": "Jay",
"age": 33,
"phone": "010-1212-5678",
"email": "qwe@gmail.com"
},
{
"id": 10,
"name": "James",
"age": 30,
"phone": "010-1234-5678",
"email": "abc@gmail.com"
}
]
function handleEdit(id, editingObj) {
// db에서 id에 해당하는 객체를 찾아서 내용을 바꿉니다.
// 배열 요소를 찾을 때 배열의 find 또는 findIndex 메소드를 사용해 보세요.
// Object.assign 을 사용해서 객체의 내용을 수정해 보세요.
const idx = db.findIndex(el => el.id === id);
Object.assign(db[idx], editingObj);
}
handleEdit(10, { name: "Paul", age: 35 });
console.log(db);
/*
출력 결과:
[
{
"id": 7,
"name": "Jay",
"age": 33,
"phone": "010-1212-5678",
"email": "qwe@gmail.com"
},
{
"id": 10,
"name": "Paul",
"age": 35,
"phone": "010-1234-5678",
"email": "abc@gmail.com"
}
]
*/
=> 객체 배열과 함께 Array findIndex() 메서드 사용
=> Objuect.assign을 이용하여 배열 객체의 내용을 수정할 수 있음.