I have a array like below
var myArray = [{'id':'73','name':'john'},{'id':'45','name':'Jass'}, etc.]
Now I have an id
73 how to select this particular object from the array. I see I can do this in jQuery easily with grep Is there any angular way of doing this?
Since most user developing app with angular always get data from array of objects(mostly for table) there should be a helper function for this?
So that I can change the data of the row with the ID of the row by updating the array of object.
I don't want to bind this in view. I want to manipulate the data and update the data withing function.
For Example. I have a table listing. If end user edit a row from the table I have the ID of the object so after end user hit save, I need to update the array and then back to table listing.
This question is related to
javascript
angularjs
arrays
you can use angular's filter
https://docs.angularjs.org/api/ng/filter/filter
in your controller:
$filter('filter')(myArray, {'id':73})
or in your HTML
{{ myArray | filter : {'id':73} }}
How about plain JavaScript? More about Array.prototype.filter()
.
var myArray = [{'id': '73', 'name': 'john'}, {'id': '45', 'name': 'Jass'}]_x000D_
_x000D_
var item73 = myArray.filter(function(item) {_x000D_
return item.id === '73';_x000D_
})[0];_x000D_
_x000D_
// even nicer with ES6 arrow functions:_x000D_
// var item73 = myArray.filter(i => i.id === '73')[0];_x000D_
_x000D_
console.log(item73); // {"id": "73", "name": "john"}
_x000D_
For complete M B
answer, if you want to access to an specific attribute of this object already filtered from the array in your HTML, you will have to do it in this way:
{{ (myArray | filter : {'id':73})[0].name }}
So, in this case, it will print john
in the HTML.
Regards!
The solucion that work for me is the following
$filter('filter')(data, {'id':10})
Source: Stackoverflow.com