티스토리 뷰
// Q1. make a string out of an array
{
const fruits = ["apple", "banana", "orange"];
const result = fruits.join();
}
join
(메소드) Array<string>.join(separator?: string): string
배열의 모든 요소를 지정된 구분 기호 문자열로 구분하여 문자열에 추가
@param separator — 배열의 한 요소를 결과 문자열의 다음 요소와 구분하는 데 사용되는 문자열
생략하면 배열 요소가 쉼표로 구분
// Q2. make an array out of a string
{
const fruits = "🍎, 🥝, 🍌, 🍒";
const result = fruits.split(",");
}
split
(메소드) String.split(separator: string | RegExp, limit?: number): string[ ] (+1 오버로드)
지정된 구분 기호를 사용하여 문자열을 부분 문자열로 분할하고 배열로 반환
구분자를 꼭 전달해주어야함 !
@param separator — 문자열을 구분하는 데 사용할 문자를 식별하는 문자열
생략하면 전체 문자열을 포함하는 단일 요소 배열이 반환 (필수전달)
@param limit — 배열에 반환되는 요소의 수를 제한하는 데 사용되는 값 (사용자마음)
// Q3. make this array look like this: [5, 4, 3, 2, 1]
{
const array = [1, 2, 3, 4, 5];
const result = array.slice(2, 5);
}
reverse
// Q4. make new array without the first two elements
{
const array = [1, 2, 3, 4, 5];
const result = array.slice(2, 5);
}
silce
배열을 특정한 부분을 리턴, 시작점과 끝점을 지정할 수 있음
(메소드) Array<number>.slice(start?: number, end?: number): number[]
배열 섹션의 복사본을 반환합니다. 시작과 끝 모두에 대해 음수 인덱스를 사용하여 배열 끝에서 오프셋을 나타낼 수 있음 예를 들어 -2는 배열의 마지막에서 두 번째 요소를 나타냄
@param 시작
배열의 지정된 부분의 시작 인덱스 start가 정의되지 않은 경우 슬라이스는 인덱스 0에서 시작
@param 끝
배열의 지정된 부분의 끝 인덱스 이것은 인덱스 '끝'에 있는 요소를 제외 end가 정의되지 않은 경우 슬라이스는 배열의 끝까지 확장
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
{
const result = students.find((student) => student.score === 90);
console.log(result);
}
find
Int8Array.find(술어: (값: 숫자, 인덱스: 숫자, obj: Int8Array) => 부울, thisArg?: 모두): 숫자
find는 조건자가 true를 반환하는 항목을 찾을 때까지 배열의 각 요소에 대해 조건자를 오름차순으로 한 번씩 호출. 그러한 요소가 발견되면 find는 즉시 해당 요소 값을 반환
그렇지 않으면 find는 정의되지 않은 값을 반환
조건자가 true인 경우 배열의 첫 번째 요소 값을 반환하고 그렇지 않으면 정의되지 않은 값을 반환
// Q6. make an array of enrolled students
{
const result = students.filter ((student) => student.enrolled);
console.log(result);
}
filter
(메드) Array<Student>.filter(predicate: (value: Student, index: number, array: Student[]) => unknown, thisArg?: any): Student[] (+1 오버로드)
콜백 함수에 지정된 조건을 충족하는 배열의 요소를 반환
@param 술어 — 최대 3개의 인수를 허용하는 함수 필터 메서드는 배열의 각 요소에 대해 술어 함수를 한 번 호출
@param thisArg — this 키워드가 술어 함수에서 참조할 수 있는 객체 thisArg를 생략하면 this 값으로 undefined가 사용됨
// 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);
}
map
(메소드) Array<Student>.map<any>(callbackfn: (값: Student, 인덱스: 숫자, 배열: Student[]) => any, thisArg?: any): any[]
배열의 각 요소에 대해 정의된 콜백 함수를 호출하고 결과가 포함된 배열을 반환
@param callbackfn — 최대 3개의 인수를 허용하는 함수
map 메소드는 배열의 각 요소에 대해 callbackfn 함수를 한 번 호출
@param thisArg — this 키워드가 callbackfn 함수에서 참조할 수 있는 객체
thisArg를 생략하면 this 값으로 undefined가 사용됨
// Q8. check if there is a student with the score lower than 50
{
}
some
배열요소중에서 콜백함수가 리턴이 트루가 되는 것이 있는지 확인
배열에서 하나라도 이 조건에 만족되는 것이 있다면 리턴
(메소드) Array<Student>.some(predicate: (value: Student, index: number, array: Student[]) => unknown, thisArg?: any): boolean
지정된 콜백 함수가 배열 요소에 대해 true를 반환하는지 여부를 결정
@param 술어
최대 3개의 인수를 허용하는 함수 일부 메서드는 술어가 부울 값 true로 강제 변환 가능한 값을 반환할 때까지 또는 배열이 끝날 때까지 배열의 각 요소에 대해 술어 함수를 호출
@param thisArg
this 키워드가 술어 함수에서 참조할 수 있는 개체 thisArg를 생략하면 this 값으로 undefined가 사용됨
배열에 들어있는 모든요소가 이 조건을 충족해야지 리턴이 됨
every
(메소드) Array<Student>.every<S>(술어: (값: Student, 인덱스: 숫자, 배열: Student[]) => 값은 S, thisArg?: any): 이것은 S[](+1 초과 적재)
배열의 모든 구성원이 지정된 테스트를 충족하는지 여부를 결정
@param 술어
최대 3개의 인수를 허용하는 함수 every 메소드는 술어가 부울 값 false로 강제 변환할 수 있는 값을 반환할 때까지 또는 배열이 끝날 때까지 배열의 각 요소에 대해 술어 함수를 호출
@param thisArg
this 키워드가 술어 함수에서 참조할 수 있는 개체. thisArg를 생략하면 this 값으로 undefined가 사용됨
// Q9. compute students' average score { }
reduce
배열의 모든 요소들의 값을 누적하는
// Q10. make a string containing all the scores
// result should be: '45, 80, 90, 66, 88'
{
}