자바스크립트의 배열 메소드 중 하나로, 배열의 모든 요소를 반복하면서 새로운 배열을 만들어 리턴하는 함수입니다.
map()
함수의 구문은 다음과 같습니다.
array.map(function(currentValue, index, arr), thisValue)
currentValue
현재 처리 중인 요소의 값index
현재 처리 중인 요소의 인덱스arr
map() 메소드를 호출한 배열thisValue (optional)
: 메소드 내에서 this 키워드가 가리킬 값map()
함수는 콜백 함수를 매개변수로 받아 각 요소에 대해 실행하고, 새로운 배열을 리턴합니다.
다음은 map()
메소드를 사용하여 배열의 각 요소를 제곱한 새로운 배열을 생성하는 예시입니다.
const numbers = [1, 2, 3, 4, 5];
const squaredNumbers = numbers.map((number) => number * number);
console.log(squareNumbers); // [1, 4, 9, 16, 25]
function ReviewList({ items }) {
return (
<ul>
{items.map((item) => {
return (
<li>
<ReviewListItem item={item} />
</li>
);
})}
</ul>
);
}
sort()
메소드는 argument를 받지 않거나, 비교 함수(comparison function)를 인자로 받습니다.const sortedArr = arr.sort((a, b) => b - a);
React에서 배열을 정렬하는 가장 일반적인 방법 중 하나는 sort() 메소드의 비교 함수를 사용하는 것입니다.
예시
import { useState } from 'react';
import ReviewList from './ReviewList';
import items from '../mock.json';
function App() {
const [order, setOrder] = useState('createdAt');
const sortedItems = items.sort((a, b) => b[order] - a[order]);
const handleNewestClick = () => setOrder('createdAt');
const handleBestClick = () => setOrder('rating');
return (
<div>
<div>
<button onClick={handleNewestClick}>최신순</button>
<button onClick={handleBestClick}>베스트순</button>
</div>
<ReviewList items={sortedItems} />
</div>
);
}
export default App;
filter()
메소드는 다음과 같은 구조를 가집니다.arr.filter(callback(element[, index[, array]])[, thisArg])
element
: 배열에서 현재 처리 중인 요소index (optional)
: 배열에서 현재 처리 중인 요소의 인덱스array (optional)
: filter()
메소드가 호출된 배열thisArg (optional)
this 키워드로 참조될 객체filter()
메소드를 사용하여 배열에서 특정 조건을 만족하는 요소만을 추출하는 예제입니다.const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter((num) => num % 2 === 0);
console.log(evenNumbers); // [2, 4]
const handleDelete = (id) => {
const nexItems = items.filter((item) => item.id !== id);
setItems(nexItems);
};
Reference