// Answer
function divideArrayInHalf(array) {
let result = [];
for(let i=4; i >= 0; i--){
if(array[i]<=10){
result.unshift(array[i]);
}else{
result.push(array[i]);
}
} return result;
}
for 문의 syntax에 맞지 않아서
; 하나까지 놓치지 말고 코드 작성하자!
return을 if 문 안에 주었기 때문에 함수 실행 중단
- return 명령문은 함수 실행을 종료하고, 주어진 값을 함수 호출 지점으로 반환한다.
- 함수 본문에서 return 명령문에 도달하면 함수의 실행은 그 지점에서 중단됩니다.
// Answer
function getWesternAge(birthday) {
let rightNow = new Date();
let birthYear = birthday.getFullYear();
let thisYear = rightNow.getFullYear();
let birthMonth = birthday.getMonth()+1;
let thisMonth = rightNow.getMonth()+1;
let birthDate = birthday.getDate();
let thisDate = rightNow.getDate();
if(birthMonth < thisMonth){
return thisYear - birthYear;
} else if((birthMonth === thisMonth) && (birthDate <= thisDate) ){
return thisYear - birthYear;
} else{
return thisYear - birthYear - 1;
}
}
- a = b와 같이 등호가 하나일 때는 할당을 의미한다.
- 일치 연산자(strict equality operator) ===를 사용하면 형 변환 없이 값을 비교할 수 있다.
// Answer
function getRandomNumber (min, max) {
return Math.random() * (max-min) + min;
}
0 <= Math.random() < 1
0 < Math.random() (max-min) < (max-min) // 양변에 (max-min) 곱하기
min < Math.random() (max-min) +min < max // 양변에 min 더하기
// Answer
function getData(salesArr,reviewArr,likeArr){
let amount = 0;
for(let i = 0; i < salesArr.length; i++){
amount += salesArr[i][1];
}
let review = 0;
for(var i = 0; i < reviewArr.length; i++){
review += reviewArr[i][1];
}
let like = 0;
for(var i = 0; i < likeArr.length; i++){
like += likeArr[i][1];
}
let objData = {
sumAmount : amount,
sumReview : review,
sumLike : like,
};
return objData;
}
변수 선언과 초기화를 동시에 할 수 있다.
amount += salesArr[i][1]; // amount = amount + salesArr[i][1]
// Answer
class MyMath {
constructor(a, b){
this.number1 = a;
this.number2 = b;
}
getNumber(){
return [this.number1, this.number2];
}
add(){
return this.number1 + this.number2;
}
substract(){
return this.number1 - this.number2;
}
multiply(){
return this.number1 * this.number2;
}
}
// Answer
const handleEdit = (nickname, interests) => {
return {
nickname : nickname,
interests : interests.split(','),
bio : `제 닉네임은 ${nickname}입니다. 취미는 ${interests.split(',')}입니다.`
};
}
split() 메서드는 String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눈다.
split syntax >>string.split( 'separator', limit )
- separator에는 분할의 기준을, limit로 최대 분할 개수를 정한다.(선택 사항으로, 값을 정하지 않으면 전체를 다 분할한다.)
- interests.split(', ')은 ,(쉼표)를 기준으로 분할한다.
// Answer
const moreThan100 = nums => {
return nums.map(el => {
if (el >= 100) return true;
if (el < 100) return false;
})
}
const formatDate = dates => {
return dates.map(dates => {
let dateArr = dates.split('-');
return `${dateArr[0]}년 ${dateArr[1]}월 ${dateArr[2]}일`;
});
}
Array.map()
map() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.
const array1 = [1, 4, 9, 16]; // pass a function to map const map1 = array1.map(x => x * 2); console.log(map1); // expected output: Array [2, 8, 18, 32]
Array.forEach()
forEach() 메서드는 주어진 함수를 배열 요소 각각에 대해 실행합니다.
const array1 = ['a', 'b', 'c']; array1.forEach(element => console.log(element)); // expected output: "a" // expected output: "b" // expected output: "c"