자바스크립트 문제

윱니·2023년 10월 23일

자바스크립트 공부했던 것을 기반으로 예제문제들을 풀어보았다. 풀면서 따로 정리하고 싶은 것들을 적어보려고 한다.

// 입력받은 문자열을 잘라서 result 값이 아래와 같이 출력되도록 함수를 완성해 보세요.
// 메소드는 slice 를 이용해 보세요.

function getToken(str) {
	return str.slice(-7);
}

const result = getToken("Bearer a012345");
console.log(result); // 출력 결과: 'a012345'

=> 문자열 자르기 (substr, substring, slice)

  • str.substr(start[, length]) 시작위치부터 해당길이만큼 자름.
  • str.substring(indexStart[, indexEnd]) 시작위치에서 종료위치까지 자름. (종료위치-1까지)
  • str.slice(beginIndex[, endIndex]) (음수(-)를 사용하여 뒤에서부터 자를 때 유용)
// 아래 함수는 배열을 입력받아서 배열 요소들 중 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을 이용하여 배열 객체의 내용을 수정할 수 있음.

profile
코린이 탈출을 기원하는 코린이

0개의 댓글