알아두면 유용할만한 Array API들에 대해 정리해본다.
참고로 vscode 상에서 command + click으로 함수의 정의 및 사용방법을 자세히 알 수 있으니 참고하면 좋을 듯 하다.
또, api를 가져다 쓸때 항상 command + click으로 함수가 어떻게 정의되었는지, 어떤 값을 인자로 전달하고 어떤 값을 리턴해주는지 항상 확인하는 습관을 들이는게 중요할 것 같다
// join() : make a string out of an array { const fruits = ['apple', 'banana', 'orange']; const result = fruits.join('/'); // 구분자 입력, 생략 가능 console.log(result); //'apple/banana/orange' } // split() { const fruits = ['apple, banana, orange']; fruits.split(','); //구분자, 몇 개까지 자를지 선택가능 console.log(result); } // reverse() { const array = [1,2,3,4,5]; const result = array.reverse(); console.log(array); // [5,4,3,2,1] } //slice() { const array = [1,2,3,4,5]; const result = array.slice(2,5); console.log(result); //[3,4,5] console.log(array) //[1,2,3,4,5] } // find() // 콜백함수 조건을 만족하는 요소 반환 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), ]; // find a student with the score 90 const result = students.find((student) => student.score === 90; // C return); // filter () // make an array of enrolled students // 해당 콜백함수 조건을 만족하는 요소를 반환 const result = students.filter((student) => student.enrolled); console.log(result); // A,C,E return // map() // make an array containing only the students' scores // 배열안에 들어있는 모든 요소들을 같이 전달한 콜백함수를 호출하면서 다른 방식의 데이터를 만들어줌 { const result = students.map((student) => student.score * 2); console.log(result); //[90,160,180,132,176] } // some() // check if there is a student with the score lower than 50 // 배열의 요소 중에서 콜백 함수 조건이 True가 되는 요소가 있는지 없는지 검사 { const result = students.some((student) => student.score < 50); console.log(result); // true } // every() // 배열의 요소 모두가 콜백 함수의 조건을 만족해야 True를 리턴 { const result = students.every((student) => student.score < 50); } // reduce() // compute students' average score // 전달하는 콜백함수 안에서 누적된 값을 리턴함 // prev 는 이전에 콜백함수에 리턴된 값이 전달받고, curr 는 배열의 아이템을 순차적으로 전달받는다. { const result = students.reduce((prev, curr) => prev + curr.score); // 369 console.log(result / students.length) // 73.8 (다 더해진 값) } // make a string containing all the scores { const result = students.map((student) => student.score) // 학생 점수만 맵핑 .filter((score) => score >= 50) //50점 이상인 것 추출 .join(); //새로운 배열로 만듬 // 학생들 점수 반환 -> 50 점 이상 필터링 -> 조인 console.log(result); // '45, 80, 90, 66, 88' } // sorted in ascending order { const.result = students.map((student) => student.score) .sort((a,b) => a - b) // 리턴 받은 스코어를 sort를 이용하여 낮은 순으로 정렬 .join(); //string 변환 console.log(result); // '45,66,80,88,90' }