簡體   English   中英

Javascript 用於環路到濾波器的轉換

[英]Javascript for loop to filter conversion

我有以下腳本,它使用 for 循環過濾數據,如圖所示

let i;
const filteredFriends = [];

for (i = 0; i < users.length; i += 1) {
  if (this.isUserExist(users[i]) {
    filteredFriends.push(users[i]);
  }
}

我怎樣才能將其轉換為過濾器

請有任何想法

只需在filter()的回調 function 中使用if條件。 user[i]替換為回調 function 參數。

const filteredFriends = users.filter(u => this.isUserExist(u))

確保使用箭頭 function 以便在回調this中繼承。 如果您需要與沒有箭頭函數的舊實現兼容,請參閱如何在回調中訪問正確的 `this`?

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

只需這樣做:

const users = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
let filteredFriends = users.filter(user => this.isUserExist(user));
console.log(filteredFriends);

filter方法需要返回 boolean 值。 您的 function this.isUserExist似乎正在這樣做,就像您在 if 條件下使用的那樣。

像這樣使用它。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM