[ JavaScript - API를 이용한 Quiz ]
1. [ Array(배열)을 String(문자열로) 바꾸기 - make a string out of a an Array
console.log('1번 문제');
//Q1. make a string out of a an array
{
//join을 이용해보자
const answer1 = fruits.join(',');
console.log(answer1);
console.log(typeof(answer1));
}
Java
복사
2. [ String을 Array로 바꾸기 - make an array out of a String ]
//Q2. make an array out of a String
{
const fruits = '🍨,🍦,🍧,🍵';
//split은 구분자를 표시해주고 그 뒤에 limit이라는 속성을 줄수도있다
//limit은 해당 배열중에몇번째까지 표현할껀지 라는 의미라고 생각하면 된다.
const answer2 = fruits.split(',');
console.log(answer2.length);
console.log('2번 모범답안')
console.log(answer2);
}
Java
복사
3. [ 배열을 뒤집어보기 - make this array look like this : [5,4,3,2,1] ]
console.log('3번 문제');
//Q3. make this array look like this : [5,4,3,2,1]
{
const array = [1,2,3,4,5];
console.log("3번 모범답안")
const answer3 = array.reverse();
console.log(answer3);
console.log(array);
}
Java
복사
4. [ 앞에 있는 두개 요소를 제거하고 배열을 새로 생성하기 - make new array without the first two elements ]
console.log('4번 문제');
//Q4. make new array without the first two elements
{
const array = [1,2,3,4,5];
//새로운 배열을만들어야하니깐 slice 사용
// splice는 배열자체를 수정
// slice는 원하는 부분만 return받을때 사용
// slice(a,b) a: 시작부분Index , b: 제외되는index부분
// 즉 우리는 3,4,5를 반환해야하므로 제외되는인덱스는 4가 아닌 5로 해야한다
const answer4 = array.slice(2,5);
console.log(answer4);
console.log(array)
}
Java
복사
5. [ 점수가 90점 이상인 학생 찾기 ]
class Student{
constructor(name, age, enrolled, score) {
this.name = name;
this.age = age;
this.enrolled = enrolled;
this.score = score;
}
}
const students = [
new Student('A', 29, true, 45),
new Student('B', 28, false, 80),
new Student('C', 30, true, 90),
new Student('D', 40, false, 66),
new Student('E', 18, true, 88),
];
console.log('5번 문제');
//Q5. find student with the score 90
{
const answer5 = students.find(function(student, index){
return student.score === 90;
});
console.log(answer5);
}
JavaScript
복사
6. [ 등록된 학생들로만 배열로 만들어보세요 ]
class Student{
constructor(name, age, enrolled, score) {
this.name = name;
this.age = age;
this.enrolled = enrolled;
this.score = score;
}
}
const students = [
new Student('A', 29, true, 45),
new Student('B', 28, false, 80),
new Student('C', 30, true, 90),
new Student('D', 40, false, 66),
new Student('E', 18, true, 88),
]
console.log('6번 문제');
//Q6 . make an array of enrolled students
{
const answer6 = students.filter(function(student){
return student.enrolled;
});
console.log(answer6);
}
Java
복사
7. [ make an array containing only the students- scores result should be : [45,80,90,66,88] ]
class Student{
constructor(name, age, enrolled, score) {
this.name = name;
this.age = age;
this.enrolled = enrolled;
this.score = score;
}
}
const students = [
new Student('A', 29, true, 45),
new Student('B', 28, false, 80),
new Student('C', 30, true, 90),
new Student('D', 40, false, 66),
new Student('E', 18, true, 88),
]
console.log('7번 문제');
//Q7 . make an array containing only the students- scores result should be : [45,80,90,66,88]
// 배열안에 요소들을 우리가 원하는 함수를 이용해서 다른방식의 데이터를 만들고싶을 떄 Map이 유용하다
{
const answer7 = students.map(function(student){
return student.score;
});
console.log(answer7);
Java
복사
8. [ check if there is a student with the score lower than 50 ]
class Student{
constructor(name, age, enrolled, score) {
this.name = name;
this.age = age;
this.enrolled = enrolled;
this.score = score;
}
}
const students = [
new Student('A', 29, true, 45),
new Student('B', 28, false, 80),
new Student('C', 30, true, 90),
new Student('D', 40, false, 66),
new Student('E', 18, true, 88),
]
console.log('8번 문제');
// Q8. check if there is a student with the score lower than 50
{
const answer8 = students.find(function(student, index){
return student.score < 50 ? true : false;
});
console.log(answer8);
}
{
//some은 어떤것중에 만족하느게 1개라도 있는경우를 찾을 떄 사용한다
const result = students.some((student) => student.score < 50);
console.log(result);
//every는 모든 학생의 점수가 50점이 낮아야 true
const result2 = students.every((student) => student.score < 50);
console.log(result2);
}
Java
복사
9. [ compute students` average score ]
class Student{
constructor(name, age, enrolled, score) {
this.name = name;
this.age = age;
this.enrolled = enrolled;
this.score = score;
}
}
const students = [
new Student('A', 29, true, 45),
new Student('B', 28, false, 80),
new Student('C', 30, true, 90),
new Student('D', 40, false, 66),
new Student('E', 18, true, 88),
]
console.log('9번 문제');
// Q9. compute students` average score
{
let sum = 0 ;
for(let i = 0; i < students.length; i++){
sum += students[i].score;
}
const avg = sum / 5;
console.log(avg);
}
{
//reduce는 배열의 모든요소들의 값을 누적하는 뭔가 함께 모아놓을 떄 사용한다.
//reduceRight : 배열의 제일뒤 부터 시작 E -> D - > C -> B -> A 순으로
//prev : 이전의 callback함수에서 return된 값이 전달 되어 온다
//curr : 배열의 item 을 순차적으로 전달받는다
const result = students.reduce((prev,curr) => {
console.log('--------');
console.log(prev);
console.log(curr);
return prev + curr.score;
},0);
console.log(result);
}
{
const result2 = students.reduce((prev,curr) => prev + curr.score,0);
console.log(result2 / students.length);
}
{
const result = students.reduce(function(prev, curr) {
return prev + curr.score
},0);
}
console.log(result/students.length);
Java
복사
10. [ make a string containing all the scores ]
console.log('10번 문제');
//Q10. make a string containing all the scores
// result should be : '45, 80, 90, 66, 88'
{
const result = students
.map(student => student.score)
.filter((score) => score >= 50)
.join(',');
console.log(result);
}
Java
복사
11. [ Sorted in ascending order →result should be : '45, 66, 80, 88, 90'
console.log('11번문제');
//Bonus do Q10 Sorted in ascending order
//result should be : '45, 66, 80, 88, 90'
{
const result = students.map(function(student){
return student.score;
})
.sort((a,b)=> a-b)
.join(',');
console.log(result);
}
Java
복사