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

回到顶部