我可以改进我的代码并用array.map替换for循环吗?
我搜索过,我想我可以这样做,但我没有找到我怎么能应用它。
这就是我found:
var result = arr.map(person => ({ value: person.id, text: person.name }));
我的代码在这里:
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);
});
}
答案 0 :(得分:4)
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);
});
}
这应该有希望