数组forEach不返回布尔值 [英] Array forEach not returning boolean

查看:61
本文介绍了数组forEach不返回布尔值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

关于前两个函数为什么返回未定义而不是布尔值的问题,有人可以给我一些启示吗?

Foreach没有任何返回类型,可以使用

鸣谢: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

Can someone give me some insight as to why the first 2 functions return undefined instead of a boolean?

https://jsfiddle.net/wjf2gr9d/

const array1 = [1, 2, 3];

const test1Result = test1();
const test2Result = test2();
const test3Result = test3();

console.log(test1Result);
console.log(test2Result);
console.log(test3Result);


function test1() {
    return array1.forEach(x => 2 === x);
}

function test2() {
    const found = array1.forEach((x, index) => {
        if (2 === x) {
            return true;
        }
        return false;
    });

    return found;
}

function test3() {
    const maybeTeam = array1.find(x => 2 == x);

    return (maybeTeam) ? true : false;
}

解决方案

If you check this check return value section it returns undefined.

Foreach doesn't have any return types, You can use some. If you must use foreach then you can take temp variable and change it inside foreach like I did in test2

const array1 = [1, 2, 3];

const test1Result = test1();
const test2Result = test2();
const test3Result = test3();

console.log(test1Result);
console.log(test2Result);
console.log(test3Result);


function test1() {
    return array1.some(x => 2 === x);
}

function test2() {
    var found = false;
    array1.forEach((x, index) => {
        if (2 === x) {
            found = true;
        }
       
    });

    return found;
}

function test3() {
    const maybeTeam = array1.find(x => 2 == x);

    return (maybeTeam) ? true : false;
}

Credits: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

这篇关于数组forEach不返回布尔值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆