我有一个如下所示的数组
var myArray = [{'id':'73','name':'john'},{'id':'45','name':'Jass'}, etc.]
现在我有一个id
73如何从数组中选择这个特定的对象。我发现我可以使用grep轻松地在jQuery中执行此操作。是否有角度方式这样做?
由于大多数使用angular的用户开发应用程序总是从对象数组中获取数据(主要用于表),因此应该有一个辅助函数吗?
这样我就可以通过更新对象数组来更改行的数据和行ID。
我不想在视图中绑定它。我想操纵数据并使用函数更新数据。
例如。我有一个表格列表。如果最终用户从表中编辑一行我有对象的ID,那么在最终用户点击保存后,我需要更新数组然后再返回表列表。
答案 0 :(得分:66)
你可以使用角度filter
https://docs.angularjs.org/api/ng/filter/filter
在您的控制器中:
$filter('filter')(myArray, {'id':73})
或在您的HTML中
{{ myArray | filter : {'id':73} }}
答案 1 :(得分:39)
纯JavaScript怎么样? More about 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"}
答案 2 :(得分:4)
对于完整的M B
答案,如果您想访问已从HTML数组中过滤掉的该对象的特定属性,则必须采用以下方式:
{{ (myArray | filter : {'id':73})[0].name }}
因此,在这种情况下,它将在HTML中打印john
。
致谢!
答案 3 :(得分:0)
对我有用的是这样的
$filter('filter')(data, {'id':10})