2016-05-10 98 views
-1

我使用過濾器來查找data.it中的id返回對象不是true或false。我如何返回true或false如果val.recoredId === valueId?過濾器返回true或false

var hasMatch = data.filter(function (val) { 
      return (val.recordId === valueId);        
     }); 
+0

目前還不清楚你問什麼,但假設'data'是一個數組,請嘗試['map'](https://developer.mozilla.org/e n-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)功能。 –

+0

你的問題真的不清楚,請閱讀「如何問一個好問題」,然後再試一次...... – areim

+0

是你的問題「我需要將hasMatch設置爲true,如果我的數組中有任何對象的id等於valueId 「? – nnnnnn

回答

1

使用發現

hasMatch = data.find(function (value) {return value.recordId == valueId }); 
0

試試這個

var hasMatch = data.filter(function (val) { 
    return !!(val.recordId === valueId);        
}); 
+0

'==='運算符已經返回true或false,因此添加'!!'不起任何作用。 – nnnnnn

+0

問題是如何讓'hasMatch'變量成爲一個布爾值。目前它是一個數組。 – undefined

3

只是檢查篩選結果

的長度
var hasMatch = data.filter(function (val) { 
     return (val.recordId === valueId);        
    }).length > 0; 
+1

不需要'> 0' – Tushar

+3

@Tushar當然,它不會工作,因爲0是一個虛假的值。但也許爲了可讀性,並且由於OP似乎對這種過濾方法來說是新的,所以我會保留它。此外,我的答案將與您的答案相同:) – gurvinder372

+0

取決於hasMatch是否需要爲實際布爾值 - 如果是,則保持> 0測試。 – nnnnnn