Post

[React] 배열인 state에 값 추가, 제거

내용

state가 배열인 경우에 어떻게 값을 추가하고, 제거하는지 알아보기

 

배열에 값 추가

전개 연산자(Spread Operator)를 사용해 기존에 지정되어 있던 state를 배열에 담고, 해당 배열 뒤에 값을 추가한 새 배열을 state에 지정하면 됩니다.

배열 안의 값이 string인 경우

1
2
3
4
5
6
7
8
// state 기본값: ["A", "B"]
const [arr, setArr] = useState(["A", "B"]);

// state에 "C" 추가
setArr(prevList => [...prevList, "C"]);

// 결과: ["A", "B", "C"]
console.log(arr);

배열 안의 값이 object인 경우

1
2
3
4
5
6
7
8
// state 기본값: [{word: "A"}, {word: "B"}]
const [arr, setArr] = useState([{word: "A"}, {word: "B"}]);

// state에 "C" 추가
setArr(prevList => [...prevList, {word: "C"}]);

// 결과: [{word: "A"}, {word: "B"}, {word: "C"}]
console.log(arr);

 

배열에서 값 제거

기존에 지정되어 있던 state에 filter 함수를 사용해 특정 값을 삭제한 새 배열을 state에 지정합니다.

배열 안의 값이 string인 경우

1
2
3
4
5
6
7
8
// state 기본값: ["A", "B", "C"]
const [arr, setArr] = useState(["A", "B", "C"]);

// state에서 "C" 제거
setArr(arr.filter(word => word !== "C"));

// 결과: ["A", "B"]
console.log(arr);

배열 안의 값이 object인 경우

1
2
3
4
5
6
7
8
// state 기본값: [{word: "A"}, {word: "B"}, {word: "C"}]
const [arr, setArr] = useState([{word: "A"}, {word: "B"}, {word: "C"}]);

// state에서 "C" 제거
setArr(arr.filter(obj => obj.word !== "C"));

// 결과: [{word: "A"}, {word: "B"}]
console.log(arr);

 

레퍼런스

This post is licensed under CC BY 4.0 by the author.