본문 바로가기

JavaScript/React

[Spread Operator] 배열에 특정한 인덱스의 아이템 교체

728x90
let arr = [1,2,3,4,5];

이 배열의 2번째 인덱스를 10으로 교환해보자. 아래와 같이

[1,2,10,4,5];

 

해결

const index = 2;
const newVal = 10;
arr = [
	...arr.slice(0, index),
    newVal,
    ...arr.slice(index + 1)
]

리액트 setState에서의 사용 예시

const newfile = {
	s3KeyThumbnail: 'blahblah.jpg';
    size: 1024,
    ext: 'jpg'
}
this.setState(state => ({
	...state,
    files: [
    	...state.files.slice(0, index),
        newFile,
        ...state.files.slice(index + 1)
    ]
}));

 

[출처]
https://velog.io/@sonaky47/Vanilla-Javascript-%EB%B0%B0%EC%97%B4%EC%97%90-%ED%8A%B9%EC%A0%95%ED%95%9C-%EA%B0%92-%EB%81%BC%EC%9B%8C%EB%84%A3%EA%B8%B0-%EC%A0%84%EA%B0%9C%EC%97%B0%EC%82%B0%EC%9E%90-6jjo79s0b3

728x90