2017-10-30 11 views
0

React 구성 요소의 배열 요소를 제거해야합니다. 이것은 불변 객체라는 것을 의미합니다.JS에서 변경 불가능한 배열에서 요소를 제거하는 가장 깨끗한 방법은 무엇입니까?

스프레드 연산자를 사용하면 요소를 쉽게 추가 할 수 있습니다.

return { 
     ...state, 
     locations: [...state.locations, {}] 
    }; 

지우기는 조금 더 까다 롭습니다. 중간 개체를 사용해야합니다.

 var l = [...state.locations] 
     l.splice(index, 1) 
     return { 
      ...state, 
      locations: l 
     } 

코드가 더러워지고 이해하기 어렵게 만듭니다.

요소를 제거하는 새 배열을 만드는 것이 쉽지 않습니까?

+1

'const를 편곡 =

const arr = ['a', 'b', 'c', 'd', 'e']; const indexToRemove = 2; // the 'c' const result = [...arr.slice(0, indexToRemove), ...arr.slice(indexToRemove + 1)]; console.log(result);

또 다른 옵션은 배열 # 필터입니다 [ ' 에이 비 씨 디이']; 삭제 arr [2]; console.log (arr.filter (Array))' – dandavis

답변

1

당신의 조합을 사용할 수 있습니다 확산 Array#slice :

const arr = ['a', 'b', 'c', 'd', 'e']; 
 

 
const indexToRemove = 2; // the 'c' 
 

 
const result = arr.filter((_, i) => i !== indexToRemove); 
 

 
console.log(result);

+0

arr.filter ((_, i) => i! == indexToRemove)' – zerkms

+1

@zerkms - 특별히 당신을 위해 :) –