•princípio:
• O navegador avançado suporta o método de foreach
Sintaxe: Tanto o suporte para o suporte quanto o mapa 2 parâmetros: um é a função de retorno de chamada (item, índice, lista) e contexto;
• foreach: usado para iterar através de cada item na matriz; Esta execução do método não tem valor de retorno e não tem efeito na matriz original;
• Existem vários itens na matriz; portanto, a função anônima de retorno de chamada aprovada precisa ser executada várias vezes;
• Sempre que uma função anônima é executada, três valores de parâmetros também são passados a ela: o item atual na matriz, o índice do índice do item atual e a entrada da matriz original;
• Teoricamente, esse método não retorna um valor, apenas atravessa todos os itens da matriz e não modifica a matriz original; Mas podemos modificar a matriz original por nós mesmos através do índice da matriz;
• Isso no método foreach é ary, e na função de retorno de chamada anônima é a janela por padrão;
vary = [12,23,24,42,1]; var res = ary.foreach (function (item, índice, entrada) {input [index] = item*10;}) console.log (res); //-> indefinido; console.log (ary); //-> mudará o Array original;• Mapa: é muito semelhante ao foreach. É usado para iterar através de cada valor de item em uma matriz e iterar em cada item em uma matriz;
• Diferença: o valor de retorno de retorno é suportado na função de retorno de chamada do mapa; O retorno é equivalente a alterar esse item na matriz para o porquê (ele não afeta a matriz original, é equivalente a clonar uma cópia da matriz original e alterar os itens correspondentes na matriz clonada);
• Cada um ou mapa suporta o segundo valor do parâmetro. O segundo parâmetro significa modificar isso na função anônima de retorno de chamada.
vary = [12,23,24,42,1]; var res = ary.map (function (item, índice, entrada) {return item*10;}) console.log (res); //-> [120,230,240,420,10]; console.log (ary);• Método de escrita compatível:
• Seja foreach ou mapa no IE6-8 (não há dois métodos no Array.prototype quando incompatível), precisamos encapsular os dois métodos compatíveis, o código é o seguinte:
/*** FUNCIONAÇÃO FUNCIONADO ARRAY* @PARAM RECOMENTO [FUNCÇÃO] Função de retorno de chamada; * contexto de contexto @param [objeto]; */Array.prototype.myforeach = função myForEach (retorno de chamada, contexto) {context = context || janela; if ('foreach' em array.prototye) {this.ForEach (retorno de chamada, contexto); retornar; } // No IE6-8, escreva a lógica para a execução da função de retorno de chamada por si mesmo (var i = 0, len = this.length; i <len; i ++) {retorno de chamada && retorno.call (contexto, este [i], i, this); }} /*** MAPA ARRAY ARRAY* @param Retorno [função] Função de retorno de chamada; * contexto de contexto @param [objeto]; */Array.prototype.myMap = função mymap (retorno de chamada, contexto) {context = context || janela; if ('map' em array.prototye) {return this.map (retorno de chamada, contexto); } // ie6-8 lógica para gravar a execução da função de retorno de chamada por si mesmo var neard = []; for (var i = 0, len = this.length; i <len; i ++) {if (typeoflack === 'function') {var val = callback.call (context, este [i], i, este); newary [newary.length] = val; }} retornar newary;}PS: Se houver algum erro no método de escrita acima, corrija -o, ^^
A introdução acima para os métodos do Array Traversal forEach () e MAP () e os métodos de escrita compatíveis no JavaScript são todo o conteúdo que eu compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.