Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
109
rated 0 times [  115] [ 6]  / answers: 1 / hits: 19445  / 8 Years ago, mon, august 29, 2016, 12:00:00

Iam new to angular framework. when i want to iterate json object in angular, i used javascript foreach and for..in loops.



Later i came to know that angular itself has a angular.forEach loop to iterate objects.



How can i compare performance of angular.forEach with javascript for..in and foreach loops??



Why we should use angular.forEach instead of javascript foreach and for..in??



Please give me some examples and reasons to use it, which shows the performance.



Thanks :)


More From » angularjs

 Answers
34

Angular forEach - Invokes the iterator function once for each item in obj collection, which can be either an object or an array.



var values = {name: 'misko', gender: 'male'};
angular.forEach(values, function(value, key) {
console.log(key + ': ' + value);
});

// Output:
// name: misko
// gender: male


for..in - iterates over the enumerable properties of an object, in arbitrary order. For each distinct property, statements can be executed.



var obj = {a:1, b:2, c:3};

for (var prop in obj) {
console.log(obj. + prop + = + obj[prop]);
}

// Output:
// obj.a = 1
// obj.b = 2
// obj.c = 3


forEach - method executes a provided function once per array element.



// Notice that index 2 is skipped since there is no item at
// that position in the array.
[2, 5, , 9].forEach(function (element, index, array) {
console.log('a[' + index + '] = ' + element);
});
// logs:
// a[0] = 2
// a[1] = 5
// a[3] = 9


In terms of performance it depends on the data structure you're working with, if it's an Array I will suggest using Angular.forEach or native forEach, if it's an Object for..in will be the best, however it seems Angular.forEach handles object pretty well too. Depending on the amount of data you working with. If it's enormous I will suggest you use libraries like Lodash or Underscore, they handle data manipulation well.


[#60883] Friday, August 26, 2016, 8 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
shylaelisan

Total Points: 37
Total Questions: 94
Total Answers: 110

Location: Angola
Member since Tue, May 5, 2020
4 Years ago
;