[英]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.