如何避免嵌套循环

How to avoid nested loops

本文关键字:嵌套循环 何避免      更新时间:2023-09-26

我需要用have和repo构造这个对象。我觉得嵌套这些地图是一种非常糟糕的做法,这是流程的失败点。这应该怎么写?

let observ = observable$.flatMap(repos => {
  return Rx.Observable.from(repos.map(repo => ({hash: getHash(repo), repo})))
})

我认为这种方法没有任何明显的问题。如果要简化代码,可以使用 concatMap ,它将数组流转换为项目流。然后我们可以做一个法线贴图:

let repo$ = observable$.concatMap(identity);
let observ = repo$.map(repo => ({hash: getHash(repo), repo }));

哪里identity === x => x.

如果要

避免使用 identity 调用 observable$ 流,也可以在链中更早地应用concatMap