2016-01-05 194 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。而陣列具有相同的內容。 –

相關問題