RxJS:从对象中删除字段
假设我有一个具有4个字段的对象,如下所示:RxJS:从对象中删除字段,rxjs,Rxjs,假设我有一个具有4个字段的对象,如下所示: obj = {a:"3", b:"7", c:"10", d:"123"} Rx.Observable.of({ a:"3", b:"7", c:"10", d:"123" }) .map(({ a, c }) => ({ a, c })) 我需要将其“缩小”到具有较少字段的对象,如: newObj = {a:"3", c:"10"} 我知道这可以通过删除字段来实现(即删除对象b) 我的问题是,这可以通过RxJS实现吗?如果是,如何 非
obj = {a:"3", b:"7", c:"10", d:"123"}
Rx.Observable.of({ a:"3", b:"7", c:"10", d:"123" })
.map(({ a, c }) => ({ a, c }))
我需要将其“缩小”到具有较少字段的对象,如:
newObj = {a:"3", c:"10"}
我知道这可以通过删除字段来实现(即删除对象b)
我的问题是,这可以通过RxJS实现吗?如果是,如何
非常感谢 如果您有一个发出上述形状的
可观察的
,您可以这样做:
obj = {a:"3", b:"7", c:"10", d:"123"}
Rx.Observable.of({ a:"3", b:"7", c:"10", d:"123" })
.map(({ a, c }) => ({ a, c }))
在映射函数中,我分解对象的结构,然后使用速记语法创建对象文字。请注意,这些是es6/7功能
但您确实不需要rxjs或可观察对象来完成此操作:
const original = { a:"3", b:"7", c:"10", d:"123" }
const changed = { a: original.a, c: original.c }
您是否希望对现有对象进行变异,或者它是否也适合您的情况,以获得一个新的对象作为结果?简单回答:不,RXJS中没有删除属性这样的东西真的吗??这是我第一次遇到RxJS做不到的事情。。那就回到过去的好策略吧。。谢谢你,伙计!当然,您可以映射到一个新对象-这就是我问第一个问题的原因-我的另一个问题是:为什么您要尝试用一些库函数替换一些本机对象(如本例中的
delete
)?在最好的情况下,rxjs方法只需调用delete
。