2016-01-05 152 views
0

我有一个名为$scope.activities的范围。在该范围内是多个对象。每个对象都有一个名为viewed的字符串,值为checkuncheck。我想检查值是否存在uncheck检查范围内是否有值

我已经创建了这个,但它似乎没有工作。

if (activities.indexOf("uncheck") == -1) { 
    console.log ('uncheck found') 
    $scope.newActivities = 'newActivities'; 
} else { 
    console.log ('no uncheck found') 
} 

因为在activities我有两个目的,一个与所述uncheck值,没有它目的。

[{"id":2,", "viewed":"check"}, {"id":3,", "viewed":"uncheck"}] 
+0

如果你有你''scope'内activities'阵列,必须解决您的'if'与条件:'如果($ scope.activities.indexIf( “取消”)== - 1){...}'。也许这会解决你的代码:) –

回答

2

你必须循环每个对象和检查属性 - 您可以使用Array.some

var hasValue = activities.some(function(obj) { return obj.viewed == "unchecked" }); 
1

你必须遍历数组和测试中的每个对象,如果属性“观察”等以 “unchek”

var activities = [{"id":2, "viewed":"check"}, {"id":3, "viewed":"uncheck"}]; 
var activities2 = [{"id":2, "viewed":"check"}, {"id":3, "viewed":"check"}]; 
var check = function(data){ 
    var checked = false; 
    for(var i in data){ 
     if(data[i].hasOwnProperty("viewed") && (data[i]["viewed"]=="uncheck")){ 
      checked = true ; 
     } 
    } 
    return checked; 
} ; 

console.log(check(activities)); 
console.log(check(activities2)); 
+0

谢谢阿兰,这对我来说最合适! –

+0

代码中似乎存在一个错误。看来代码正在看最后一个项目。 var activities = [{“id”:2,“viewing”:“check”},{“id”:3,“viewing”:“uncheck”}];'this returns true。这个'var activities = [{“id”:2,“views”:“uncheck”},{“id”:3,“viewing”:“check”}];'返回false。而阵列具有相同的内容。 –

相关问题