猿问

js判断数组是否包含某个元素,自己写了个函数,不知哪出了问题?

var arr = [
    {        id:1,
        name:"mincoo"
    },
    {        id:2,
        name:"tomorrow"
    }
];//参数:(要检测的数组,要检测的字段,要检测哪个key)function isContainKey(arr,value,keyName){    for(var i=0;i<arr.length;i++){        if(arr[i].keyName == value){            return false; //发现含有此元素
        }        else{            return true; //没有找到
        }        console.log(arr[i].keyName); 
    }
}
isContainKey(arr,"tomorrow","name");

我想要的效果:
如果检测到这个数组包含此元素,返回true,否则返回false。
但是我这里写的白屏了,是什么原因呢?


慕码人2483693
浏览 1398回答 2
2回答

HUX布斯

你这是找数组第一个的对象的叫keyName属性等不等于value。function&nbsp;isContainKey(arr,value,keyName){&nbsp;&nbsp;&nbsp;&nbsp;for(var&nbsp;i=0;i<arr.length;i++){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(arr[i][keyName]&nbsp;==&nbsp;value){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;&nbsp;//发现含有此元素 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false; }其次为何要写着方法,不本来就有么。arr.some(({&nbsp;name&nbsp;})&nbsp;=>&nbsp;name&nbsp;===&nbsp;'tomorrow'&nbsp;)
随时随地看视频慕课网APP
我要回答