我有以下脚本使用 for 循环过滤数据,如图所示let i;const filteredFriends = [];for (i = 0; i < users.length; i += 1) { if (this.isUserExist(users[i]) { filteredFriends.push(users[i]); }}我怎样才能把它转换成过滤器任何想法请
4 回答
暮色呼如
TA贡献1853条经验 获得超9个赞
只需if
在 的回调函数中使用条件即可filter()
。替换user[i]
为回调函数参数。
const filteredFriends = users.filter(u => this.isUserExist(u))
确保使用箭头函数,以便this
在回调函数中继承。如果您需要与没有箭头函数的旧实现兼容,请参阅How to access the correct `this` inside a callback?
牧羊人nacy
TA贡献1862条经验 获得超7个赞
let filteredFriends = users.filter(user => { return this.isUserExist(user); });
万千封印
TA贡献1891条经验 获得超3个赞
filter
方法需要返回布尔值。您的功能this.isUserExist
似乎是在 if 条件下使用的。
像使用它。
const filteredFriends = users.filter(this.isUserExist);
哔哔one
TA贡献1854条经验 获得超8个赞
只需这样做:
const users = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
let filteredFriends = users.filter(user => this.isUserExist(user));
console.log(filteredFriends);
添加回答
举报
0/150
提交
取消