使用map检查true或false不起作用

时间:2016-05-17 17:31:45

标签: javascript loops dictionary filter

我正在尝试不使用循环,因为我练习地图,过滤等等,并想知道为什么我的代码不起作用?

function checking(array,item){
 var temporary=true;
array.map(function(x){
if (x!=item){
    temporary=false;
}

});
return temporary;
}

checking([1, 2, 3], 2);

2 个答案:

答案 0 :(得分:3)

为什么不使用Array#some,它非常适合检查并返回一个布尔值。如果回调返回为true,则最好的是短路。



function checking(array, item) {		
    return array.some(function (x) {
        return x === item;
    });
}

document.write(checking([1, 2, 3], 2));




答案 1 :(得分:0)

因为您没有检查2是否在数组中,但是您正在检查数组是否具有不同于2的值。

您应该检查是否存在例如:

let temporary=false;
array.map(function(x){
if (x==item){
    temporary=true;
}