簡體   English   中英

使用AngularJS方式通過對象數組中的屬性查找對象

[英]Find object by its property in array of objects with AngularJS way

我有一個像下面這樣的數組

var myArray = [{'id':'73','name':'john'},{'id':'45','name':'Jass'}, etc.]

現在我有一個id 73 如何從數組中選擇這個特定對象。 我看到我可以在 jQuery 中使用grep輕松地做到這一點有沒有任何角度的方法來做到這一點?

由於大多數用戶使用 angular 開發應用程序總是從對象數組(主要用於表)獲取數據,因此應該有一個輔助函數嗎?

這樣我就可以通過更新對象數組來更改具有行 ID 的行數據。

我不想綁定這個。 我想操作數據並使用函數更新數據。

例如。 我有一個表列表。 如果最終用戶從表中編輯一行,我有對象的 ID,因此在最終用戶點擊保存后,我需要更新數組,然后返回到表列表。

您可以使用 angular 的filter https://docs.angularjs.org/api/ng/filter/filter

在您的控制器中:

$filter('filter')(myArray, {'id':73}) 

或在您的 HTML 中

{{ myArray | filter : {'id':73} }}

普通的 JavaScript 怎么樣? 更多關於Array.prototype.filter()

 var myArray = [{'id': '73', 'name': 'john'}, {'id': '45', 'name': 'Jass'}] var item73 = myArray.filter(function(item) { return item.id === '73'; })[0]; // even nicer with ES6 arrow functions: // var item73 = myArray.filter(i => i.id === '73')[0]; console.log(item73); // {"id": "73", "name": "john"}

對於完整的MB答案,如果您想訪問已從 HTML 中的數組過濾的此對象的特定屬性,則必須以這種方式進行:

{{ (myArray | filter : {'id':73})[0].name }}

因此,在這種情況下,它將在 HTML 中打印john

問候!

對我有用的解決方案如下

$filter('filter')(data, {'id':10}) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM