array - diferencia entre javascript foreach loop, for..in y angular forEach loop.
foreach angularjs (2)
angular.forEach
es básicamente un polyfill.
Por lo tanto, si está usando angular, no importa si el navegador es más antiguo porque angular proporcionará un reemplazo si es necesario.
En código se vería así:
if (!Array.prototype.forEach) {
Array.prototype.forEach = function(...) {
// angulars own implementation
}
}
Hay algunas otras diferencias, por ejemplo,
- angular.forEach admite iteración sobre objetos;
- angular.forEach toma un objeto / matriz como primer argumento.
Soy nuevo en el marco angular. cuando quiero iterar el objeto json en angular, use javascript foreach
y for..in
loops.
Más tarde, llegué a saber que el ángulo tiene un bucle angular.forEach
para cada objeto para iterar objetos.
¿Cómo puedo comparar el rendimiento de angular.forEach
con javascript para ... for..in
y foreach
loops?
¿Por qué deberíamos usar angular.forEach
lugar de javascript foreach
y for..in
?
Por favor, dame algunos ejemplos y razones para usarlo, que muestren el rendimiento.
Gracias :)
Angular forEach : invoca la función del iterador una vez para cada elemento de la colección de objetos, que puede ser un objeto o una matriz.
var values = {name: ''misko'', gender: ''male''};
angular.forEach(values, function(value, key) {
console.log(key + '': '' + value);
});
// Output:
// "name: misko"
// "gender: male"
for..in - itera sobre las enumerable properties
de un objeto, en orden arbitrario. Para cada propiedad distinta, las declaraciones pueden ser ejecutadas.
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 : el método ejecuta una función proporcionada una vez por elemento de matriz.
// 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
En términos de rendimiento, depende de la estructura de datos con la que estés trabajando, si es un Array
, sugeriré usar Angular.forEach or native forEach
, si es un Object
for..in
será el mejor, sin embargo parece Angular.forEach
maneja el objeto bastante bien también. Dependiendo de la cantidad de datos con los que trabaje. Si es enorme, le sugeriré que use bibliotecas como Lodash or Underscore
, que manejan bien la manipulación de datos.