函数正在返回未定义的javascript

函数正在返回未定义的javascript,javascript,Javascript,我用javascript表达式编写了一个函数来检查结果是真是假,但我总是遇到未定义的错误 var数组=[{ 电邮:'usman@gmail.com', 密码:“123” }, { 电邮:'ali@gmail.com', 密码:“123” } ]; let main=函数(电子邮件、密码){ 返回数组.forEach((行)=>{ if(row.email==电子邮件和&row.password==密码){ 返回真值 }否则{ 返回错误 } }); }; var checkLogin=main(

我用javascript表达式编写了一个函数来检查结果是真是假,但我总是遇到未定义的错误

var数组=[{
电邮:'usman@gmail.com',
密码:“123”
},
{
电邮:'ali@gmail.com',
密码:“123”
}
];
let main=函数(电子邮件、密码){
返回数组.forEach((行)=>{
if(row.email==电子邮件和&row.password==密码){
返回真值
}否则{
返回错误
}
});
};
var checkLogin=main('usman@gmail.com', '123');

console.log(checkLogin)
forEach数组函数不返回任何内容。如果触摸其中的循环数组,则可以修改现有数组而无需复制。

forEach数组函数不会返回任何内容。如果触摸其中的循环数组,则可以修改现有数组而不复制它。

这是因为
forEach
不返回任何内容。您可以使用简单for循环,如下所示:

var数组=[
{电子邮件:'usman@gmail.com,密码:'123'},
{电子邮件:'ali@gmail.com,密码:'123'}
];
let main=函数(电子邮件、密码){
对于(var i=0;ilog(checkLogin)
这是因为
forEach
不返回任何内容。您可以使用简单for循环,如下所示:

var数组=[
{电子邮件:'usman@gmail.com,密码:'123'},
{电子邮件:'ali@gmail.com,密码:'123'}
];
let main=函数(电子邮件、密码){
对于(var i=0;iconsole.log(checkLogin)
此逻辑有问题:

return array.forEach((row) => {
if (row.email === email && row.password === password) {
  return true

} else {
  return false
}
});

如果没有此逻辑,它将返回您想要的任何内容

此逻辑有问题:

return array.forEach((row) => {
if (row.email === email && row.password === password) {
  return true

} else {
  return false
}
});

如果没有此逻辑,它将返回您想要的任何内容

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
var数组=[
{电子邮件:'mike@gmail.com,密码:'123'},
];
let main=函数(电子邮件、密码){
对于(var i=0;i
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
var数组=[
{电子邮件:'mike@gmail.com,密码:'123'},
];
let main=函数(电子邮件、密码){
对于(var i=0;i
您可以获取并返回检查结果

var数组=[{email:'ali@gmail.com“,密码:'123'},{电子邮件:'usman@gmail.com,密码:'123'}];
让main=(电子邮件、密码)=>
array.some(row=>row.email==email&&row.password==password);
var checkLogin=main('usman@gmail.com', '123');
log(checkLogin)
您可以获取并返回检查结果

var数组=[{email:'ali@gmail.com“,密码:'123'},{电子邮件:'usman@gmail.com,密码:'123'}];
让main=(电子邮件、密码)=>
array.some(row=>row.email==email&&row.password==password);
var checkLogin=main('usman@gmail.com', '123');

console.log(checkLogin)
为什么返回forEach循环?
数组。forEach
不返回任何内容。我想您是想使用
map
为什么要返回forEach循环?
数组。forEach
不返回任何内容。我想你的意思是使用
map
It循环数组。它不必修改任何内容,而是在数组上循环。它不一定修改任何内容。forEach不返回任何内容forEach不返回任何内容顺便说一句,这仅适用于给定的数组顺序,但如果所需的部分是
数组的第二个元素则不起作用。您需要将
return false
移动到函数的末尾,而不是
for
语句的内部,因为这将以第一个元素结束迭代。顺便说一句,这仅适用于给定的数组顺序,但如果所需的部分是
数组的第二个元素,则不起作用。您需要将
return false
移动到函数的末尾,而不是
for
语句的内部,因为这将以第一个元素结束迭代。顺便说一句,这仅适用于给定的数组顺序,但如果所需的部分是
数组的第二个元素,则不起作用。您需要将
return false
移动到函数的末尾,而不是
for
语句的内部,因为这将以第一个元素结束迭代。顺便说一句,这仅适用于给定的数组顺序,但如果所需的部分是
数组的第二个元素,则不起作用。您需要将
return false
移动到函数的末尾,而不是
for
语句的内部,因为这将以第一个元素结束迭代。