Javascript for循环过滤转换

我有以下脚本使用 for 循环过滤数据,如图所示


let i;

const filteredFriends = [];


for (i = 0; i < users.length; i += 1) {

  if (this.isUserExist(users[i]) {

    filteredFriends.push(users[i]);

  }

}

我怎样才能把它转换成过滤器


任何想法请


繁星淼淼
浏览 133回答 4
4回答

暮色呼如

只需if在 的回调函数中使用条件即可filter()。替换user[i]为回调函数参数。const&nbsp;filteredFriends&nbsp;=&nbsp;users.filter(u&nbsp;=>&nbsp;this.isUserExist(u))确保使用箭头函数,以便this在回调函数中继承。如果您需要与没有箭头函数的旧实现兼容,请参阅How to access the correct `this` inside a callback?

牧羊人nacy

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

万千封印

filter方法需要返回布尔值。您的功能this.isUserExist似乎是在 if 条件下使用的。像使用它。const&nbsp;filteredFriends&nbsp;=&nbsp;users.filter(this.isUserExist);

哔哔one

只需这样做:const users = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];let filteredFriends = users.filter(user => this.isUserExist(user));console.log(filteredFriends);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript