자바스크립트에서 배열은 객체이다. 배열과 관련된 여러가지 함수를 사용할 수 있다.
filter(): 조건을 만족시키는 배열의 아이템을 남겨놓는 함수
<script>
let nums = [-10, 20, -15, 5, 30];
// 배열의 filter함수를 호출하면서 화살표 함수 전달하기
let result = nums.filter((item) => {
return item > 0;
});
// nums = [5, 20, 30]
let result2 = nums.filter((item) => item > 0);
</script>
map(): 배열의 아이템에 조건을 추가시키는 함수
<script>
let names = ["김구라", "해골", "원숭이"];
let result = names.map((item) => {
return item + "님";
});
// names = ["김구라님", "해골님", "원숭이님"]
let result2 = names.map((item) => item + "님");
</script>
sort(): 배열의 아이템을 내림차순 또는 오름차순으로 정렬하는 함수
<script>
let nums = [-30, 10, -20, 20, 30];
/*
1. 위 배열의 모든 아이템에 25를 더한 후,
2. 얻어낸 배열에서 양의 정수만 남긴 배열을 얻어내고
3. 오름 차순으로 정렬하기
*/
let a = nums.map((item) => item + 25).filter((item) => item > 0)
let c = a.sort((a, b) => {
let c = a - b;
console.log("a:" + a + "b:" + b + "a-b:" + c);
return c;
});
let phones = [
{name: "Ipone 10", price: 50},
{name: "Android 5", price: 20},
{name: "갤럭시 S5", price: 30},
{name: "Iphone 13", price: 100},
{name: "갤럭시 S10", price: 80}
];
/*
위의 핸드폰 목록에서 가격이 50이상인 핸드폰만 배열을 얻어내고
해당 배열의 아이템을 핸드폰 가격에 대해서 오름차순 정렬되도록 해보세요.
*/
let arr = phones.filter((item) => item.price > 50 );
console.log(arr);
let arr2 = arr.sort((a, b) => a.price - b.price);
console.log(arr2);
</script>