Q1. 배열을 문자열로 반환
arr.join([separator])
,
)로 표기됨const fruits = ["apple", "banana", "orange"];
const result = fruits.join("|");
console.log(result); // apple|banana|orange
Q2. 문자열을 배열로 반환
str.split([separator[, limit]])
const fruits = "apple|banana|orange";
const result1 = fruits.split("|");
const result2 = fruits.split("|", 2); // limit 설정시
console.log(result1); // ['apple', 'banana', 'orange'];
console.log(result2); // ['apple'];
Q3. 배열 순서 반대로 변환
arr.reverse()
const array = [1, 2, 3, 4, 5];
const result = array.reverse();
console.log(result); // [5, 4, 3, 2, 1]
console.log(array); // [5, 4, 3, 2, 1]
Q4. 첫 번째, 두 번째 인자값을 제외한 새로운 배열 생성
arr.slice([begin[, end]])
slice(-2)
경우 배열의 마지막 2개의 요소 추출한다.const array = [1, 2, 3, 4, 5];
const result = array.slice(2);
console.log(result); // [3, 4, 5]
console.log(array); // [1, 2, 3, 4, 5]
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. 90점 학생 데이터를 출력
arr.find(callback[, thisArg])
undefinded
// 첫 번째 true 값을 반환
const result = students.find((student) => student.score === 90);
console.log(result); // {name: 'C', age: 30, enrolled: treu, score: 90}
Q6. true인 학생 데이터 모두 출력
arr.filter(callback(element[, index[, array]])[, thisArg])
[]
을 반환한다// true인 모든 값 배열로 반환
const result = students.filter((student) => student.enrolled === true);
console.log(result); // [Stduent, Stduent, Stduent]
Q7. 접수만 들어있는 배열 생성
arr.map(callback(currentValue[, index[, array]])[, thisArg])
.forEach()
비슷하지만 차이점은 수정된 배열을 리턴(Return) 한다..forEach()
비교하여 처리속도가 느리다.const result = students.map((student) => student.score);
console.log(result); // [45, 80, 90, 66, 88]
Q8. 50점 미만 학생 유/무 확인
arr.some(callback[, thisArg])
// .some()은 배열에 1개 이상 조건이 만족되지 않는 경우
const result = students.some((student) => student.score < 50);
console.log(result); // true
arr.every(callback[, thisArg])
// .every()은 모든 배열에 조건이 만족되지 않을 경우
const result2 = students.every((student) => student.score >= !50);
console.log(result2); // true
Q9. 학생들의 평균 점수
arr.reduce(callback[, initialValue])
Array
객체의 ProtoType
에 정의되어 있는 고차 함수이다.map
, filter
, find
함수로 구현할 수 있는 기능은 모두 reduce
함수로 구현 가능하다.initialValue
를 통해서 반환 값을 자유롭게 지정하여 유연하게 사용 가능하다.reduce()
와 .reduceRight()
의 유일한 차이는 배열의 끝에서부터 시작한다는 것.const result = students.reduceRight((prev, curr) => prev + curr.score, 0);
console.log(result / students.length); //73.8
Q10. 50점 이상의 학생들의 점수를(배열) 문자열로 반환
const result = students
.map((student) => student.score)
.filter((score) => score >= 50)
.join();
console.log(result); // 80,90,66,88
Q11. 학생들의 점수를(배열) 내림차순 정렬 후 문자열로 반환
arr.sort([compareFunction])
undefined
인 경우에는 문자열로 변환되지 않는다.undefined
인 경우에는 배열의 맨 끝으로 정렬 된다.const result = students
.map((student) => student.score)
.sort((a, b) => b - a)
.join();
console.log(result); // 90,88,80,65,45