【发布时间】:2018-07-26 07:14:48
【问题描述】:
我在 Ionic / Angular 中有以下接口(为了清晰起见减去细节),这就是我使用 Typescript / ES6 的原因:
export interface Item {
statusOfItem: string;
}
export interface checkin {
items: Array<Item>;
}
export interface table {
checkins: Array<Checkin>;
}
我需要编写一个函数,传入表对象,但表中的签入都被它们的状态过滤。
这是我想出的功能:
transformTable(table: Table, status: string): Table{
let newTable: Table = table;
newTable.checkins = table.checkins.map(
checkin => {
let newCheckin: Checkin = checkin;
newCheckin.items = checkin.items.filter(
item => item.statusOfItem == status
);
return newCheckin;
}
)
return newTable;
}
我想使用新的数组函数,如 map 等。这可以更有效地完成/编写(例如,没有let)。
【问题讨论】:
-
新的数组函数? Firefox 自 2005 年以来就拥有它们。
-
请注意,赋值(或初始化,在您的
let语句中)确实不复制对象。 -
@Bergi 为什么会这样?如何使用 let 语句复制对象?
-
@Bergi 你说得对,我注意到了!初始化时如何复制?
标签: javascript arrays typescript ionic-framework ecmascript-6