javascript - 以下的代码返回跟想像的不一致,怎么解?
世界只因有你
世界只因有你 2017-05-19 10:43:32
[JavaScript讨论组]
function has(list, item) {
  list.forEach(v => {
    if (v === item) {
        return true
    }
  })
  return false
}

console.info(has([1,2,3], 1))

怎么让结果为true???

世界只因有你
世界只因有你

全部回复(5)
世界只因有你

1、forEach循环无法中断
2、用for循环
3、用indexOf
4、用ES6的includes

过去多啦不再A梦

forEach方法无法中断执行,总是会将所有成员遍历完
可以这样

return list.indexOf(item) !== -1;

或者用for循环

某草草

箭头函数没有自己的this值,而是继承自外围作用域

高洛峰

其实题主并不是不知道用其他方式来实现这个简单的功能, 只是用forEach来做

function has(list, item) {
    let flag = false
    list.forEach(v => {
        if (v === item) {
            flag = true
        }
    })
    return flag
}

console.info(has([1, 2, 3], 1))

因为forEach的return truereturn false 并不是返回值的作用, 所有只能借助flag

黄舟
function has(list, item){
    var flag = false;
    list.forEach(v => {
        if (v === item) {
            flag = true;
        }
    });
    return flag;
}

console.log(has([1, 2, 3], 1));
// true
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号