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.
Answer: Use the find() Method You can simply use the find() method to find an object by a property value in an array of objects in JavaScript. The find() method returns the first element in the given array that satisfies the provided testing function. If no values satisfy the testing function, undefined is returned.
Answer: Use the Array. isArray() Method You can use the JavaScript Array. isArray() method to check whether an object (or a variable) is an array or not. This method returns true if the value is an array; otherwise returns false .
The indexOf() method searches the array for the specified item, and returns its position. And return -1 if the item is not found.
To find the index of an object in an array, by a specific property: Use the map() method to iterate over the array, returning only the value of the relevant property. Call the indexOf() method on the returned from map array. The indexOf method returns the index of the first occurrence of a value in an array.
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'}] 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"}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With