使用angular.forEach的简单异步代码

时间:2015-05-28 10:47:02

标签: angularjs

标志始终为false。我怎么办?

代码在这里:

var list = ['NOVALUE','VALUE','NOVALUE'];
var flag = false;
angular.forEach(list, function(value){
    if('VALUE' === value){
        flag = true;
    }
});
console.log(flag);
抱歉,我错过了什么

4 个答案:

答案 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