RxJS - 对象的分区数组
RxJS - partition array of objects
如何对以下数组进行分区,使其在 30 岁以下和 30 岁及以上之间进行分区。
我认为下面的代码可以做到这一点,但它似乎只是 return 数组,而不是每个元素:
let ageArr = [
{ name: 'Ken', age: 28 },
{ name: 'Mary', age: 70 },
{ name: 'Kate', age: 12 },
{ name: 'David', age: 37 },
{ name: 'Laura', age: 42 },
{ name: 'Ian', age: 19 },
{ name: 'Peter', age: 21 },
{ name: 'Isobel', age: 55 },
{ name: 'Rebecca', age: 15 }
];
let [under, over] = Oversable.of(ageArr).partition(person => person.age < 30);
under.subscribe(a => console.log(a)); // [ { name: 'Ken', age: 28 }, { name: 'Kate', age: 12 }, { name: 'Ian', age: 19 }, { name: 'Peter', age: 21 }, { name: 'Rebecca', age: 15 } ]
over.subscribe(a => console.log(a)); // [ { name: 'Mary', age: 70 }, { name: 'David', age: 37 }, { name: 'Laura', age: 42 }, { name: 'Isobel', age: 55 } ]
但是如上所述,这似乎行不通。知道如何实现我想要的目标吗?
您需要使用Observable.from
let ageArr = [
{ name: 'Ken', age: 28 },
{ name: 'Mary', age: 70 },
{ name: 'Kate', age: 12 },
{ name: 'David', age: 37 },
{ name: 'Laura', age: 42 },
{ name: 'Ian', age: 19 },
{ name: 'Peter', age: 21 },
{ name: 'Isobel', age: 55 },
{ name: 'Rebecca', age: 15 }
];
let [under, over] = Rx.Observable.from(ageArr).partition(person => person.age < 30);
under.subscribe(a => console.log("Under 30: " + a.name));
over.subscribe(a => console.log("Over 30: " + a.name));
<script src="https://unpkg.com/rxjs/bundles/Rx.min.js"></script>
如何对以下数组进行分区,使其在 30 岁以下和 30 岁及以上之间进行分区。
我认为下面的代码可以做到这一点,但它似乎只是 return 数组,而不是每个元素:
let ageArr = [
{ name: 'Ken', age: 28 },
{ name: 'Mary', age: 70 },
{ name: 'Kate', age: 12 },
{ name: 'David', age: 37 },
{ name: 'Laura', age: 42 },
{ name: 'Ian', age: 19 },
{ name: 'Peter', age: 21 },
{ name: 'Isobel', age: 55 },
{ name: 'Rebecca', age: 15 }
];
let [under, over] = Oversable.of(ageArr).partition(person => person.age < 30);
under.subscribe(a => console.log(a)); // [ { name: 'Ken', age: 28 }, { name: 'Kate', age: 12 }, { name: 'Ian', age: 19 }, { name: 'Peter', age: 21 }, { name: 'Rebecca', age: 15 } ]
over.subscribe(a => console.log(a)); // [ { name: 'Mary', age: 70 }, { name: 'David', age: 37 }, { name: 'Laura', age: 42 }, { name: 'Isobel', age: 55 } ]
但是如上所述,这似乎行不通。知道如何实现我想要的目标吗?
您需要使用Observable.from
let ageArr = [
{ name: 'Ken', age: 28 },
{ name: 'Mary', age: 70 },
{ name: 'Kate', age: 12 },
{ name: 'David', age: 37 },
{ name: 'Laura', age: 42 },
{ name: 'Ian', age: 19 },
{ name: 'Peter', age: 21 },
{ name: 'Isobel', age: 55 },
{ name: 'Rebecca', age: 15 }
];
let [under, over] = Rx.Observable.from(ageArr).partition(person => person.age < 30);
under.subscribe(a => console.log("Under 30: " + a.name));
over.subscribe(a => console.log("Over 30: " + a.name));
<script src="https://unpkg.com/rxjs/bundles/Rx.min.js"></script>