Ответ 1
Angular forEach - вызывает функцию итератора один раз для каждого элемента в коллекции obj, который может быть либо объектом, либо массивом.
var values = {name: 'misko', gender: 'male'};
angular.forEach(values, function(value, key) {
console.log(key + ': ' + value);
});
// Output:
// "name: misko"
// "gender: male"
for..in - итерации по enumerable properties
объекта в произвольном порядке. Для каждого отдельного свойства могут выполняться операторы.
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 - метод выполняет предоставленную функцию один раз для элемента массива.
// 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
В терминах производительности это зависит от структуры данных, с которой вы работаете, если это Array
, я предлагаю использовать Angular.forEach or native forEach
, если это будет Object
for..in
, но это кажется Angular.forEach
тоже хорошо обрабатывает объект. В зависимости от объема данных, с которыми вы работаете. Если он будет огромным, я предлагаю вам использовать библиотеки типа Lodash or Underscore
, они хорошо справляются с обработкой данных.