JavaScript的施加之前删除的对象上先前的滤波器新
我有一系列使用类似于此的功能过滤器应用到对象按钮:JavaScript的施加之前删除的对象上先前的滤波器新
isNew(type) { //need to reset filter first
this.results = this.results.filter(function(type) {
return type.has_user_viewed === true
})
console.log('isNew');
}
我的问题是,如果施加一个滤波器通过用户单击,然后应用另一个过滤器,过滤后的数组将再次过滤。我需要做的是在应用新过滤器之前将对象重置为原始状态。不确定如何“重置”过滤器?
回答:
只需将未过滤的数据保存到变量。 filter
创建一个新的数组对象(浅拷贝元素)每一次,所以你的代码覆盖与过滤数据的原始数据:
this.data = [...whatever the source is] isNew(type) {
//need to reset filter first
this.results = this.data.filter(function(type) {
return type.has_user_viewed === true
})
console.log('isNew');
}
回答:
你可能需要存储的过滤器的地方比这其他的结果。如果您想访问原始结果列表以便稍后进行其他过滤,则会出现结果。请注意,此更改可能会强制您更改其他代码。
什么我推荐的一个例子:
this.filteredResults = this.results.filter(function(type) { return type.has_user_viewed === true
})
我建议你谷歌更改的,随着认识的,当你需要解决今后发生类似的问题,这将极大地帮助你。
以上是 JavaScript的施加之前删除的对象上先前的滤波器新 的全部内容, 来源链接: utcz.com/qa/257768.html