将数组映射到TypeScript中的另一个数组

amo*_*new 0 reactive

我可以改善我的代码,并用array.map代替for-loop吗?

我搜索了一下,我想我可以这样做,但是我没有找到如何应用的方法。

这是我发现的

var result = arr.map(person => ({ value: person.id, text: person.name }));
Run Code Online (Sandbox Code Playgroud)

我的代码在这里:

  public getFlights(): Observable<RowItem[]> {
    return this.http
      .get(this.apiHostFlights)
      .map((res: any) => {
        return <LocationModelItem[]>res.json();
      })
      .map((items: LocationModelItem[]) => {
        var rowItems: RowItem[]=[];
        var cachedLenght = items.length;
        for (var i = 0; i < cachedLenght; i++) {
          rowItems.push(
            new RowItem(i, items[i].name, items[i].img, items[i].category)
          );
        }
        return rowItems;
      })
      .catch((error: any) => {
        return Observable.throw(error.statusText);
      });
  }
Run Code Online (Sandbox Code Playgroud)

Tho*_*mas 7

 public getFlights(): Observable<RowItem[]> {
    return this.http
      .get(this.apiHostFlights)
      .map((res: any) => {
        return <LocationModelItem[]>res.json();
      })
      .map((items: LocationModelItem[]) => {
        return items.map((item, index) => ({
           index: index,
           name: item.name,
           img: item.img,
           category: item.category)
        }))

      })
      .catch((error: any) => {
        return Observable.throw(error.statusText);
      });
  }
Run Code Online (Sandbox Code Playgroud)

希望这样做