[JavaScript] Api Quiz

작성자
진행일시
2021/07/26
이메일

[ 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
복사