为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript for循环过滤转换

Javascript for循环过滤转换

繁星淼淼 2022-12-29 16:26:37
我有以下脚本使用 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?


查看完整回答
反对 回复 2022-12-29
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

let filteredFriends = users.filter(user => {
    return this.isUserExist(user);
});


查看完整回答
反对 回复 2022-12-29
?
万千封印

TA贡献1891条经验 获得超3个赞

filter方法需要返回布尔值。您的功能this.isUserExist似乎是在 if 条件下使用的。

像使用它。

const filteredFriends = users.filter(this.isUserExist);


查看完整回答
反对 回复 2022-12-29
?
哔哔one

TA贡献1854条经验 获得超8个赞

只需这样做:


const users = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

let filteredFriends = users.filter(user => this.isUserExist(user));

console.log(filteredFriends);


查看完整回答
反对 回复 2022-12-29
  • 4 回答
  • 0 关注
  • 131 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信