angular - 从 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);
如果您用更多细节/上下文重新编写您的问题,您可能会得到更好的答案:)
推荐阅读
- php - 为什么'require' PHP 函数会重新排列我的 HTML?
- pip - Apache Beam Pypi 包永久下载
- discord - 不和谐.py。如何在“on_raw_reaction_add”函数中等待人的反应?
- java - 我不知道如何解决问题中的这个错误
- python - Python Beautifulsoup 请求变体
- linux - 错误无法执行忍者。我试图执行“/opt/fuchsia/prebuilt/third_party/ninja/linux-arm64/ninja”
- html - a href 样式 如何更改链接
- nginx - 通过 NGINX Kubernetes Ingress 将 HTML 添加到后端响应正文
- python - Python检查dict是否是其他dict的一部分
- django - 在 Django Rest 框架中处理 Paypal 付款/结帐