【发布时间】:2018-12-04 02:08:27
【问题描述】:
let cities = [{ "name" : "SF", "id" : 4, "population" : 10, favorite: false}, { "name" : "NY", "id" : 5, "population" : 20, favorite: false}, { "name" : "DC", "id" : 6, "population" : 30, favorite: false}
我有一个数组,如果用户根据人口应用过滤器,我可以使用 filter 方法过滤数组,但它给了我另一个包含过滤数据的数组。在过滤数组中,用户可以收藏城市,当用户删除过滤器时,我需要显示带有收藏指示器的完整城市列表。问题是过滤数组是一个单独的数组,整个数组不知道过滤数组上的属性是否已更改。有没有更简单的方法来处理这一切?我可以过滤主数组而不是创建另一个数组吗?
【问题讨论】:
-
你的数组类或结构中的东西吗?
-
@Paulw11 结构,但可以根据需要进行更改
-
只使用类而不是结构。类通过引用传递。
-
如果你让它们成为类,那么它们是引用对象,因此是可变的;两个数组只会引用一个对象,因此更新
favorite属性将显示在两个数组中,否则您需要更新底层数据模型并从中刷新未过滤的数组 -
好主意,我可以试试。