簡體   English   中英

我無法在 JavaScript 中實現 forEach 循環

[英]I am unable to implement the forEach loop in JavaScript

這是我正在使用的名為數據庫的數組的圖像

我不知道如何正確使用 forEach 循環,有人能說為什么這不起作用嗎? 這是我嘗試過的。

您的 forEach 循環不起作用的原因是您向它傳遞了一個如下所示的函數:

function f(user, password) {
  password == 'examplepassword';
  user == 'someuser';
}

您的函數采用了錯誤的參數。 forEach遍歷一個數組,並將數組的每一項傳遞給您提供給它的函數。 該函數應該寫成:

function f(item) {
  item.password == 'examplepassword';
  item.user == 'someuser';
}

所以你想重寫你的代碼更像

db = [{username: 'a', password: 'abc'}, {username: 'b', password: 'bca'}]

db.forEach(function(user) {
  console.log("user " + user.username + " has password " + user.password);
})
/* Output:
user a has password abc
user b has password bca
*/

額外學分:

您可以在forEach 的文檔中找到更多詳細信息。 您傳遞給 forEach 的函數還可以有兩個其他參數,它當前傳遞的項的編號和原始數組。

let a = ['a', 'b', 'c']
function f(item, position, array) {
  console.log("The letter " + item + " is in position " + position)
  console.log("array[position] == " + array[position])
}

a.forEach(f);

/* Output:
The letter a is in position 0
array[position] == a
The letter b is in position 1
array[position] == b
The letter c is in position 2
array[position] == c
*/

var database = [{
  username: 'gaurav',
  password: 'password'
}, {
  username: 'gaurav1',
  password: 'password1'
}, {
  username: 'gaurav2',
  password: 'password2'
}];

database.forEach(credential => {// credential is the object = {username, password}
  if (credential.username === credential.username && credential.password === credential.password) {
    console.log('matched');
  }
})

forEach 將期望具有對象數組的函數,因為“數據庫”具有對象集合。 因此,當您傳遞“函數(用戶名、密碼)”時,我們不能有 2 個單獨的參數。 它應該是函數(obj)。

暫無
暫無

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

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