[프론트엔드]_JavaScript(es6)_6.Array_APi 연습
2021. 12. 5. 18:39ㆍ[프론트엔드]_/[Javascript]_ES6
728x90
반응형
공부 자료 : 드림코딩 by 엘리
개발 환경 : visual studio code
언어 : js
자료구조 : Array 연습
// Q1. make a string out of an array
{
const fruits = ['apple', 'banana', 'orange'];
//join 사용
const result = fruits.join("")
console.log(result);
}
// Q2. make an array out of a string
{
const fruits = '🍎, 🥝, 🍌, 🍒';
// split(separator: string | RegExp, limit?: number): string[];
const result = fruits.split(',',2);
//split은 구분자를 전달해줘야한다.
console.log(result);
}
// Q3. make this array look like this: [5, 4, 3, 2, 1]
{
const array = [1, 2, 3, 4, 5];
//reverse 사용
const result = array.reverse();
console.log(result);
}
// Q4. make new array without the first two elements
{
const array = [1, 2, 3, 4, 5];
// 배열을 손상시키지 않고
// splice 배열자체에서 삭제함
const result = array.slice(2,5);
// 여기서 중요한 것은 마지막 index는 미만 의 개념이다. 5일경우 index 4까지 복사한다는 뜻
console.log(result)
console.log(array)
}
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),
];
// Q5. find a student with the score 90
{
// find<S extends T>(predicate: (this: void, value: T, index: number, obj: T[]) => value is S, thisArg?: any): S | undefined;
//콜백함수를 만들어서 전달해야한다.
const result = students.find(function(student){
return student.score === 90; // 90이면 true 를 리턴
}); // 배열에 있는 모든 요소가 하나하나씩 호출이 되는데 리턴을 true를 하게 되면 멈추게 된다.
console.log(result);
// const result = students.find((student) => students.score ===90);
}
// Q6. make an array of enrolled students
{
//filter 도 콜백함수를 받아야한다.
const result = students.filter((student)=> student.enrolled ===true);
console.log(result);
}
// Q7. make an array containing only the students' scores
// result should be: [45, 80, 90, 66, 88]
{
// 배열 안의 요소를 한가지씩 변형해준다.
// 콜백함수를 호출하면서 리턴되어진 값들로 대체하는 것이다.
const result = students.map((student) => student.score);
console.log(result);
//콜백함수로 전달되는 건 알아보기 쉽게 한다.
}
// Q8. check if there is a student with the score lower than 50
{
//some 과 every 중선택 하나라도 있으니 some 선택
const result = students.some((student) => student.score <= 50);
console.log(result)
}
// Q9. compute students' average score
{
console.clear();
// 계산은 reduce
// reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;
// 콜백함수에서 리턴되는 값은 누적된 값을 리턴한다.
const result = students.reduce((prev,curr) => {
console.log('---')
console.log(prev);
console.log(curr);
return prev + curr.score;
},0);
const avg = result /students.length;
// const result = students.reduce((prev,curr) =>prev + curr.score,0 );
console.log(avg);
//curr 은 하나하나씩전달이 되고, prev에 순차적으로 전달
//reduce는 시작점부터 값을 누적해서 저장한값을 다시 전달해서 더한다.
}
// 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);
}
// Bonus! do Q10 sorted in ascending order
// result should be: '45, 66, 80, 88, 90'
{
const result = students.map((student) => student.score)
.sort((a,b)=>a-b).join();
console.log(result);
}
연습 문제 출처 :
https://www.youtube.com/watch?v=3CUjtKJ7PJg&list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2&index=9
728x90
반응형
'[프론트엔드]_ > [Javascript]_ES6' 카테고리의 다른 글
[초보개발자]_Web Service, Servlet, JSP 란? (0) | 2021.12.07 |
---|---|
[초보개발자]_JS, Css 파일 수정 내용 적용 불가 오류 해결 (0) | 2021.12.06 |
[프론트엔드]_JavaScript(es6)_6.Array (0) | 2021.12.05 |
[common.js]_공통 함수 실전 필드처럼 만들어서 사용하기 (0) | 2021.12.03 |
[IntelliJ]_jQuery 라이브러리 추가, 적용 (1) | 2021.12.03 |