2015-11-30 62 views
1

使用array.protoype.some我試圖在對象的數組找到一個屬性的值''的單一實例的數組查找屬性值的單個實例。如果找到值'',則變量round將爲0。這裏是codepen http://codepen.io/theMugician/pen/meNeoJ?editors=101使用Javascript - 在對象

$scope.cells = [ { value: '', disabled: false }, 
       { value: '', disabled: false }, 
       { value: '' , disabled: false}, 
       { value: '' , disabled: false }, 
       { value: '' , disabled: false}, 
       { value: '', disabled: false } , 
       { value: '' , disabled: false}, 
       { value: '', disabled: false }, 
       { value: '' , disabled: false} ]; 

function hasValue(element) { 
    return element === ''; 
} 

//check if all cells are filled 
for(var i = 0; i < $scope.cells.length; i++){ 
    if($scope.cells[i].value.some(hasValue)){ 
     round = 0; 
    }else{ 
     round = 1; 
    } 
} 
+1

能否請您詳細闡述您的問題? – void

+0

陣列中有什麼?給定一個值的樣本數組,你會期望什麼輸出?如果這些信息已經在筆中,那麼請將它包括在這裏,筆是一個獎金,但足夠的代碼來理解和回答,這個問題在Tia網站上是強制性的,在您的問題中。 –

+0

我需要遍歷'$ scope.cells'中的每個對象,並檢查每個對象的屬性'value:'。如果在屬性'value'中有'''''的單個實例,那麼變量'round = 0'(如果在任何對象中屬性'value'中沒有''''),那麼'round = 1' –

回答

2

Array.protoype.some必須在陣列上調用。你在$scope.cells[i].value上調用它,所以它會拋出一個錯誤。

嘗試取出for循環,只需在陣列上調用some

function hasValue(element) { 
    return element.value === ""; 
} 

if($scope.cells.some(hasValue)){ 
    round = 0; 
}else{ 
    round = 1; 
} 
+0

這比我想象的要簡單。我應該在'hasValue'函數中添加'.value'屬性,而不是用'array.some'執行它,它不能。 –