如何解决从 JSONArray 过滤数据并将其分配给新对象
考虑以下示例:
const arr1 = [{'a': 'I','b': 'M','c': 'Q'}]; const arr2 = [{'x': 'C','y': 'D','z': 'M'}];
// 我从服务调用中获取这些数组
if(arr2 的键 'z' 的值与 arr1 的键 'b' 的值匹配){
// 将键值 x 和 y 分配给 arr1 对象
}
是否可以使用任何 RxJs 运算符?我实现了 forkJoin 并且能够从服务到组件级别获取两个数组。但是我也尝试过使用 mergeMap 和 flatMap,但是没有成功。似乎,我必须运行一个我试图避免的嵌套循环。
解决方法
好吧,您的问题没有任何上下文,所以这里的答案与您所要求的类似:
forkJoin(
of([{a: 'I',b: 'M',c: 'Q'}]),of([{x: 'C',y: 'D',z: 'M'}])
).pipe(
map(([[ob1],[ob2]]) =>
ob1.a == ob2.z?
[[{...ob1,x: ob2.x,y:ob2.y}],[ob2]]:
([[ob1],[ob2]])
)
).subscribe(console.log);
如果你用更多的细节/上下文重新编写你的问题,你可能会得到更好的答案:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。