Prefácio
Uma questão encontrada na entrevista: a função da soma da matriz JS. A primeira coisa que penso é a Array Loops. No entanto, acho que o entrevistador fez essa pergunta para não tomar o método bem conhecido. Naquela época, eu era tão inteligente que pensei na função recursiva adicionando constantemente itens à matriz, mas não conseguia ajustar o método depois de um longo tempo. Aconteceu que essa não era a solução ideal. Finalmente, o entrevistador me perguntou se eu já tinha visto reduce() antes, mas realmente não era. Então, quando procuro as informações, Array.reduce() é um novo atributo adicionado ao ES5, e as similares são Array.reduceRight()。
Vamos resumir o método de soma matrizes abaixo.
A maneira mais difícil: aquisição de loop
Adicione um por um através do loop for. Veja o código:
Array.prototype.sum = function () {var resultado = 0; for (var i = 0; i <this.length; i ++) {resultado+= this [i]; } resultado de retorno;}; [1,4,7,2,10] .sum (); // 24Use o método de redução
Usando o método reduce , você pode escrever um método sum para somar uma matriz.
reduce() recebe uma função como acumulador e cada valor na matriz (da esquerda para a direita) começa a encolher e acaba sendo um valor.
Sintaxe de redução:
Array.Reduce (retorno de chamada [, InitialValue]);
A função callback aceita 4 parâmetros: previousValue (o valor retornado pelo último retorno de chamada), currentValue (o elemento atual que está sendo processado), index (índice) e a própria matriz (o primeiro parâmetro de retorno de callback é chamado pela primeira vez) e executa a função para cada valor na matriz.
O parâmetro initialValue é opcional, indicando o valor inicial; Se initialValue for especificado, ele será considerado o valor previous usado originalmente. Se padrão, o primeiro elemento da matriz é usado como previous e current é um lugar na parte traseira.
Array.prototype.sum = function () {return this.reduce (function (parcial, value) {return parcial + value;})}; [1,4,7,2,10] .sum (); // 24 Comparado com o primeiro método, o uso reduce() é mais eficiente.
A comparação de eficiência desses dois métodos pode ligar diretamente a new Date() antes e depois que a função é executada para obter o tempo real, comparando assim o tempo de execução durante a diferença de tempo. Não vou comparar aqui porque o ambiente de execução de todos varia muito. O resultado do teste é que o tempo de execução do método reduce() é mais curto.
JS Array Soma da função e encontre o valor máximo na matriz
Código de exemplo
<! xmlns = "http://www.w3.org/1999/xhtml"> <head> <meta http-equiv = "content-type" content = "text/html; charset = gb2312" /> <title>wulin.Net_Js Matray Summation = Summats Sumt = Summats = GB2312 "/> <title>wulin.Net_Js MatRay name = "Palavras-chave" Content = "Webmaster, Página da Web Efeitos Especiais, Código de Efeitos Especiais da Página da Web, Efeitos Especiais JS, Scripts JS, Scripts, Códigos de Publicidade, vevb.com, www.vevb.com, wulin.com" /> <meta name = "Descrição" WWW.VEVB.com, AMPERS AMTA. Efeitos, fornecendo downloads de código de publicidade de alta qualidade, tudo em wulin.com "/> </ad Head> <body> <a href =" // www.vevb.com/">wulin.com </a>, os webmasters devem ter efeitos especiais da Web de alta qualidade e códigos de publicidade. Vevb.com, Webmaster JS Efeitos Especiais. <Hr> <script type = "text/javascript"> // soma array.prototype.sum = function () {for (var sum = i = 0; i <this.length; i ++) sum+= parseint (this [i]); Retornar Sum;}; // Pesquise o máximo de valor Array.prototype.maxima = function () {for (var i = 0, maxvalue = número.min_value; i <this.length; i ++) parseint (this [i])> maxvalue && (maxvalue = this [i]); return maxvalue;}; // aplique var arr = [1,21,3,4,22,45,60,7,32]; alerta (arr.join (" +") + "=" + arr.sum ()); alerta (arr.join ("|") + ", o maior número é:" + arr.maxima ());O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o uso de JavaScript por todos. Se você tiver alguma dúvida, deixe uma mensagem e discuta. O editor responderá a todos a tempo.