introducir
Modo iterador: proporciona un método para ordenar elementos individuales en un objeto agregado sin exponer la representación interna del objeto.
Varias características de los iteradores son:
1. Acceda al contenido de un objeto agregado sin exponer su representación interna.
2. Proporcione una interfaz unificada para atravesar diferentes estructuras de recolección, lo que respalda el mismo algoritmo para operar en diferentes estructuras de recolección.
3. Cambiar la estructura de la recolección donde se encuentra el iterador mientras atraviesa los problemas (por ejemplo, el elemento no puede modificarse en el foreach en C#).
texto
En iteración general, necesitamos tener al menos 2 métodos, Hasnext () y Next (), para que podamos atravesar todos los objetos. Primero damos un ejemplo:
La copia del código es la siguiente:
var agg = (function () {
índice var = 0,
datos = [1, 2, 3, 4, 5],
longitud = data.length;
devolver {
Siguiente: function () {
elemento var;
if (! this.hasnext ()) {
regresar nulo;
}
elemento = data [índice];
índice = índice + 2;
elemento de retorno;
},
HasNext: functer () {
Índice de retorno <longitud;
},
Rewind: function () {
índice = 0;
},
actual: function () {
Datos de retorno [índice];
}
};
} ());
El método de uso es el mismo que en C#:
La copia del código es la siguiente:
// El resultado de la iteración es: 1, 3, 5
while (agg.hasnext ()) {
console.log (agg.next ());
}
Por supuesto, también puede restablecer los datos a través de métodos adicionales y luego continuar con otras operaciones:
La copia del código es la siguiente:
// Reiniciar
agg.rewind ();
console.log (agg.current ()); // 1
Ejemplo de la aplicación jQuery
Un iterador muy famoso en jQuery es el método de $. A través de cada uno podemos pasar en una función adicional y luego iterar en todos los elementos de elementos, por ejemplo:
La copia del código es la siguiente:
$ .each (['dudu', 'dudu', 'yogurt niña', 'que mm'], function (índice, valor) {
console.log (index + ':' + valor);
});
//o
$ ('li'). Cada (función (índice) {
console.log (index + ':' + $ (this) .Text ());
});
Resumir
El escenario de uso del iterador es: los resultados del conjunto a menudo varían de diferentes maneras. No queremos exponer su estructura interna, pero también dejamos que el código del cliente acceda transparentemente a los elementos. En este caso, podemos usar el modo iterador.