問題:
考慮一個包含具有屬性的物件的陣列例如:
vendors = [{ Name: 'Magenic', ID: 'ABC' }, { Name: 'Microsoft', ID: 'DEF' } // and so on... ];
我們如何檢查是否具有特定屬性值(例如“Magenic”)的物件存在於該數組中,而無需借助手動循環?
解決方案:
而不是循環,我們可以利用原生JavaScript 數組方法來高效地執行此任務:
1. Array.some()
some()方法檢查數組中是否至少有一個元素滿足給定條件。對於您的情況:
if (vendors.some(e => e.Name === 'Magenic')) { // Object found! }
2。 Array.find()
與some()類似,find()傳回第一個符合指定條件的元素。如果找到匹配項:
if (vendors.find(e => e.Name === 'Magenic')) { // Returns the matching object }
3。 Array.findIndex()
如果只需要符合元素的索引:
const i = vendors.findIndex(e => e.Name === 'Magenic'); if (i > -1) { // Index of the matching object found }
4. Array.filter()
取得所有符合物件:
if (vendors.filter(e => e.Name === 'Magenic').length > 0) { // Array of matching objects found }
對於舊版瀏覽器相容性:
如果箭頭函數是不支援:
if (vendors.filter(function(e) { return e.Name === 'Magenic'; }).length > 0) { // Array of matching objects found }
這些方法提供了高效的способы檢測數組中具有特定屬性值的對象,避免顯式循環的需要。
以上是如何有效率地檢查 JavaScript 陣列中具有特定屬性的物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!