술어가 값으로 true
또는 false
을 반환하는지 여부에 따라 JavaScript 배열의 값을 두 개의 개별 배열로 분할하고 싶습니다. values
이 큰 데이터 세트로 교체 된 경우는 여기 괜찮아 두 번 각각의 값에 대한 조건을 실행되지만 문제가 될 수Haskell의 Data.List.Partition과 같은 단일 작업으로 _.filter 및 _.reject를 실행하십시오.
var values = [1, 2, 3, 4];
var even = function (num) { return num % 2 === 0; };
var evens = _.filter(values, even);
var odds = _.reject(values, even);
이 쉽게 밑줄 또는 소호 - 대쉬를 사용하여 두 가지 작업으로 수행 할 수 있습니다 even
이 계산적으로 비싼 술어로 대체 된 경우.
Lo-Dash에 대한 문서를 살펴 보았지만 한 번의 작업으로이 작업을 수행 할 수있는 내용을 볼 수 없었습니다. 필자는 수동으로 그러한 함수를 작성할 수 있지만 이상한 생략이있는 것 같습니다. 내가 누락 된 이런 기능이 있습니까?
그래서 수업은 lodash가 밑줄 문자를 모두 가지고 있다고 생각하기보다는 먼저 밑줄 문서를 확인하는 것입니다. 나는 이것을 위해 lodash에 패치를 제출해야 할 것 같아. –
'_.partition'은 Underscore에서 상당히 새롭다. [Change Log] (http://underscorejs.org/#changelog)는 2 월에 1.6.0이 나오기 때문에 Lo-Dash가 언더 코어 인터페이스의 해당 부분과 아직 일치하지 않습니다. 나는 패치를 제출할 생각을 좋아합니다. –
https://github.com/lodash/lodash/issues/177에 따라 파티션이 Lo-Dash로 가고있는 것처럼 보입니다. (그리고 그들은'_.groupBy'를 사용하는 동일한 해결 방법을 언급합니다) –