이전 글(forEach, map, filter)에 이어 find, sort 정리
(예제1) 회원명부에서 find를 이용하여 여자인 첫 번째 회원을 찾아보세요.
const 회원명부 = [ { 이름: "홍길동", 나이: 25, 성별: "male", }, { 이름: "홍길순", 나이: 30, 성별: "female", }, { 이름: "홍길자", 나이: 40, 성별: "female", }, ];답 1.
const filtered회원명부 = 회원명부.find(function (person) { if (person.성별 === "female") { return true; } }); console.log(filtered회원명부);답 2. (답 1)에서 if문의 조건이 true로 return 되는거랑 동일하여 더 간단하게 아래처럼 작성할 수 있다.
const filtered회원명부 = 회원명부.find(function (person) { return person.성별 === "female"; }); console.log(filtered회원명부);
정렬
특징
(1) 원본배열 영향 있음
const arr = ["김민수", "최지철", "박현준"]; const t = arr.sort(); console.log("arr=>", arr); // arr=> [ '김민수', '박현준', '최지철' ] console.log("t=>", t); // t=> [ '김민수', '박현준', '최지철' ] ``
(2) sort도 callback함수를 가진다.
(3) 이 callback함수는 인자(input) 2개를 갖는다.
(4) 이 callback함수의 return에 필요한 것은 '숫자'
(5) 숫자로 이루어진 배열을 정렬할 때는 b-a 가능
(6) 문자로 이루어진 배열을 정렬할 때는 localeCompare 필요
(예제1) 숫자 배열을 내림차순 또는 오름차순 정렬
const 원본배열 = [4, 10, 5, 20, 2]; 원본배열.sort((a, b) => b-a); // <내림차순> console.log(원본배열); // [ 20, 10, 5, 4, 2 ] 원본배열.sort((a, b) => a-b); // <오름차순> console.log(원본배열); // [ 2, 4, 5, 10, 20 ](예제2) 문자 배열을 오름차순 정렬
: sort의 콜백함 수 안에 'localeCompare'문을 return하여 문자를 비교할 수 있다.const 원본배열 = ["choco", "banana", "kiwi", "apple"]; const result = 원본배열.sort(function (a, b) { return a.localeCompare(b); }) console.log(result); // [ 'apple', 'banana', 'choco', 'kiwi' ](예제3)
function sortArray(arr) { // 여기에 sort를 사용하여 작성하세요 }; // 예시 출력 console.log(sortArray([3, 1, 4, 1, 5, 9])); // 출력: [1, 1, 3, 4, 5, 9]예제3 - 답
const result = arr.sort(function (인자1, 인자2) { return 인자1 - 인자2; }); return result;(예제4)
function sortArray2(arr) { // 여기에 sort를 사용하여 작성하세요 } // 예시 출력 console.log(sortArray2(["포도", "사과", "바나나"])); // 출력: ['바나나', '사과', '포도']예제4 - 답
const result = arr.sort(function (인자1, 인자2) { return 인자1.localeCompare(인자2); }); return result;