标志始终为false。我怎么办?
代码在这里:
var list = ['NOVALUE','VALUE','NOVALUE'];
var flag = false;
angular.forEach(list, function(value){
if('VALUE' === value){
flag = true;
}
});
console.log(flag);
抱歉,我错过了什么
答案 0 :(得分:1)
你应该使用.indexOf()
,正如Alexander所示:
var list = ['NOVALUE','VALUE','NOVALUE'];
var flag = list.indexOf('VALUE') !== -1;
console.log(flag);
在更一般的情况下,或.some()
:
var list = ['NOVALUE','VALUE','NOVALUE'];
var flag = list.some(function (value) {
return value === 'VALUE';
});
console.log(flag);
答案 1 :(得分:0)
因为列表中的最后一个值是“NOVALUE”所以它始终为false。 你可以做到
var script = document.createElement('script');
script.type = "text/javascript";
script1.src = "https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js";
document.body.appendChild(script);
var script2 = document.createElement('script');
script2.type = "text/javascript";
script2.src = "https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.js";
document.body.appendChild(script2);
var script3 = document.createElement('script');
script3.type = "text/javascript";
script3.src = "resource://addon-id/addon-name/data/popup.js";
document.body.appendChild(script3);
答案 2 :(得分:0)
使用休息;所以当whentrue语句出现时它将退出循环
var list = ['NOVALUE','VALUE','NOVALUE'];
var flag = false;
for(var i=0;i<list.length;i++){
if('VALUE' === value)
{
flag=true;
break;
}else
flag=false;
}
console.log(flag);
答案 3 :(得分:0)
var list = ['NOVALUE','VALUE','NOVALUE'];
var flag = false;
angular.forEach(list, function(value){
if (value === 'VALUE'){
flag = true;
}
else{
flag = false;
}
console.log(flag);
});
//false, true, false