【发布时间】:2017-03-27 17:31:31
【问题描述】:
你以前见过这个问题,但我想了解这个问题在 RxJs 中的流程。
array1 = ["cat", "dog", "taco"]
array2 = ["cat", "dog", "fish"]
过滤 array2 以仅显示不在 array1 中的项目。预期结果:
result = ["fish"]
有效的方法: array1.map(value1 => array2 = array2.filter(value2 => value1 !== value2));
也许有更好的方法?
【问题讨论】:
-
你说的是数组还是rxjs?在 Rxjs 中,基于另一个流过滤一个流的概念听起来很糟糕。如果它们只是数组,我会做
array2.filter(value2 => !array1.includes(value2)) -
includes()很棒,但我们的项目必须使用 IE 9 和 10。当然,this big, ugly polyfill 可用。我正在处理 Observables,而不是数组,但我想找到一种关系,因为 RxJs 为我们提供了一些相同(以及更多)的功能。感谢您的建议! -
否则你有 hack
array1.indexOf(value2) >= 0,但这在某些极端情况下不起作用,比如处理我认为的对象
标签: javascript arrays rxjs