2017-04-16 9 views
1

숫자 배열에서 min 연산자를 사용할 수 있음을 이해했습니다. 하지만 개체의 배열에 숫자 속성을 사용하면 어떻게됩니까?배열 속성에서 Rxjs min 연산자를 사용합니다.

var source = Rx.Observable.fromArray([1,3,5,7,9,2,4,6,8]).min(); 

다음은 문서의 설명입니다. 그러면 1이 출력됩니다. 어떻게해야합니까?

var source = Rx.Observable.fromArray([{a: 1, b:"first"},{a: 3, b:"second"},{a: 5, b:"third"}]).min(); 

내부 속성 값으로 min을 사용하고 싶습니다. 따라서 배열의 각 객체에있는 a의 값을 비교하여 해당 객체를 방출하십시오.

저는 min이 비교 기능을 사용한다는 것을 알고 있지만 여기에서 사용할 수 있는지 여부는 알지 못합니다.

최소 속성 값이 아니라 객체를 내 보내기를 원합니다.

편집 :

그래서, 내가 각도 4 응용 프로그램에 Ngrx를 사용하고 store.select 관찰 가능한에 min 연산자를 사용하는 것을 시도하고있다. 몇 가지 reasong 들어, 내가 처음 구독 및 다음 응답에서 다른 관측을 만들고 min 작품을 사용하여,하지만 구독을 건너 뛰고 낮은 코드 같은 min 연산자를 사용하려고하면 실패하고있는 방출합니다. ClientFacilities의 완전한 배열.

아무도 모르게됩니다. 둘 다 똑같지 않니?

이 작동 :

this.store.select(fromRoot.getClientFacilitiesArray).take(1).subscribe(res => { 
        Observable.from(res).min<ClientFacility>((a, b) => a.leaders_assigned - b.leaders_assigned) 
         .subscribe(res => console.log(res)); 
       }) 

이 실패

this.store.select(fromRoot.getClientFacilitiesArray).take(1) 
.min<ClientFacility>((a, b) => a.leaders_assigned - b.leaders_assigned) 
         .subscribe(res => console.log(res)); 
+0

가 * 나는 분은이 기능을 비교 소요 이해하지만,이 * 여기에 사용 할 수 있을지 모르겠어요 : 왜 사용할 수 없습니다? 왜 시도하지 그래? 설명서에는 ** 정확하게 ** 수행하려는 예제가 있습니다. http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-min –

+0

있습니다. 비교에는 두 가지 값이 필요합니다. 그들은 무엇을 할 것입니까? 그것을 알아낼 수 없습니다. 예를 들어 주시겠습니까? – notANerdDev

+1

방금 ​​말했듯이 문서에는 예제가 있습니다. 이 함수는 관찰 가능 객체가 방출하는 두 객체를 취하여 비교합니다. Array.sort()와 같습니다. –

답변

3

Rx.Observable.fromArray([1,3,5,7,9,2,4,6,8]).min()이 RxJS 5 RxJS 5.

적절한 장소를 작동하지 않습니다 RxJS 4 예입니다 설명서는 http://reactivex.io/rxjs/이고 http://reactivex.io/documentation/에는 RxJS 4 설명서가 들어 있습니다.

min operator documentation에 따르면 array sort method에 의해 허용되는 것과 비슷한 동작을하는 비교 기능을 받아 들일 수 있습니다.

Here

은 예입니다

Rx.Observable.from([{a: 1, b:"first"},{a: 3, b:"second"},{a: 5, b:"third"}]) 
.min((objA, objB) => objA.a - objB.a) 
.subscribe(val => console.log(val)); 
+0

수정 사항을 살펴 보시겠습니까? 도와 주셔서 감사합니다! – notANerdDev

+0

아니, 그들은 다른 것입니다. 'min'은 여러 값을 가진 관찰 대상을 처리하고 min 값을 선택합니다. 두 번째 경우에는 배열 인 단일 값을 가진 관측 가능 항목입니다. 'this.store.select (fromRoot.getClientFacilitiesArray) .take (1) .mergeMap (arr => Observable.from (arr)). min (...))'이어야합니다. – estus