2017-12-28 37 views
-2

filter 로다시 (lodash) 메소드를 보면,이 메소드가 호출 된 콜렉션을 변경하는지 여부가 문서에 의해 불분명했다.lodash는 그것이 불리는 배열을 mutate하지 않는다?

하지만 반응에서 이전 속성에서 새 컬렉션을 만들려고 시도하고 _.omit이 부모를 변경한다고합니다.

_.reject은 부모를 돌연변이시키지 않는보다 적절한 해결책입니까?

여기에 profile.id가 사라지는 예가 나와 있습니다. https://jsfiddle.net/69z2wepo/96535/

+0

생략은 배열이 아닌 객체에서 사용됩니다. 필터는 컬렉션을 변경하지 않습니다. –

+2

입력 내용을 변경하는 기능은 문서에서 명시 적으로 호출됩니다 (https://lodash.com/docs의 Ctrl + F "mutate"). 'filter'도'omit'도 입력을 돌연변이시키는 언급이 없습니다. –

+0

@EricGuan docs는 객체에 생략 부호가 사용된다고 말합니다. https://lodash.com/docs/4.17.4#omit – mibbit

답변

0

나는 완전히 당신의 질문을 따르지 않는,하지만 당신은 omit 또는 reject가 입력 변이, 하나의 여부 또는 그 이상 filter에 관심을 나타납니다. 그들 중 누구도하지 않습니다. 볼이 조각을 실행

const original = {a: 1}; 
 

 
console.log('--- filter() ---') 
 
console.log(_.filter(original, 'a')); 
 
console.log(original); 
 

 
console.log('--- omit() ---') 
 
console.log(_.omit(original, 'a')); 
 
console.log(original); 
 

 
console.log('--- reject() ---') 
 
console.log(_.reject(original,() => true)); 
 
console.log(original);
<script src="https://unpkg.com/[email protected]/lodash.js"></script>

뻔뻔 플러그 : filter()omit()가 Lodash에 비해 훨씬 작은 번들 크기, 내 라이브러리 Micro-dash에서 사용할 수 있습니다.

+0

오브젝트를 변형시키는 lodash에'omit' 버전이 있습니까? – Noitidart

+1

['unset()'] (https://lodash.com/docs/4.17.4#unset)와 같은 것이 원하는 것일 수 있습니다. –

+0

Eric !!! – Noitidart