[英]function is returning undefined javascript
我在 javascript 表达式中写了一个函数来检查结果是真还是假,但我总是收到未定义的错误
var array = [{ email: 'usman@gmail.com', password: '123' }, { email: 'ali@gmail.com', password: '123' } ]; let main = function(email, password) { return array.forEach((row) => { if (row.email === email && row.password === password) { return true } else { return false } }); }; var checkLogin = main('usman@gmail.com', '123'); console.log(checkLogin)
checkLogin 总是返回 undefined
这是因为forEach
不返回任何内容。 您可以使用简单的 for 循环,如下所示:
var array = [ {email: 'usman@gmail.com', password: '123'}, {email: 'ali@gmail.com', password: '123'} ]; let main = function(email, password) { for (var i = 0; i < array.length; i++) { var row = array[i]; if (row.email === email && row.password === password) { return true } } return false; }; var checkLogin = main('usman@gmail.com', '123'); console.log(checkLogin)
另外,看看some()
, includes()
, find()
和findIndex()
forEach
数组函数不返回任何内容。 如果您触摸其中的循环数组,则无需复制即可修改现有数组。
foreach 有问题。 它不会返回任何东西
var array = [
{email: 'mike@gmail.com', password: '123'},
];
let main = function(email, password) {
for (var i = 0; i < array.length; i++) {
if (array[i].email === email && array[i].password === password) {
return true
}
};
return false
};
var checkLogin = main('mike@gmail.com', '123');
console.log(checkLogin) // returns true
这个逻辑有问题:
return array.forEach((row) => {
if (row.email === email && row.password === password) {
return true
} else {
return false
}
});
没有这个逻辑它会返回你想要的任何东西
您可以使用Array#some
并返回检查结果。
var array = [{ email: 'ali@gmail.com', password: '123' }, { email: 'usman@gmail.com', password: '123' }]; let main = (email, password) => array.some(row => row.email === email && row.password === password); var checkLogin = main('usman@gmail.com', '123'); console.log(checkLogin)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.