O ECMAScript5 define dois métodos de mesclagem para matrizes: Reduce () e ReduceRight (). Ambos os métodos iteram sobre os itens arbitrários da matriz e, em seguida, criam um valor final retornado. O método reduz () começa a partir do primeiro item da matriz e itera até o final da matriz um por um. O método ReduceRight () é exatamente o oposto. Começa a partir do último item da matriz e avança para o primeiro item.
Ambos os métodos recebem dois parâmetros: uma função chamada em cada item e o valor inicial como base para a mesclagem. A função foi aprovada para reduzir () e reduteright () recebe 4 parâmetros: o valor anterior, o valor atual, o índice do item e o objeto da matriz. Qualquer valor retornado por esta função será passado automaticamente para o próximo item como o primeiro parâmetro. A primeira iteração ocorre no segundo termo da matriz; portanto, o primeiro parâmetro é o primeiro termo da matriz e o segundo parâmetro é o segundo termo da matriz.
Por exemplo, podemos usar o método reduz () para encontrar a soma de todos os valores em uma matriz.
var nums = [1,2,3,4,5]; var sum = nums.Reduce (função (prev, cur, índice, matriz) {retrun pre + cur;});No código acima, na primeira vez em que a função de retorno de chamada é executada, o prev é 1 e o curs é 2. A segunda vez que prev é 3 e o CUR é 3. O método reduz () repetirá esse processo até que cada item da matriz seja acessado uma vez e, finalmente, atribua o resultado retornado à soma.
O método ReduceRight () é semelhante à esquerda e direita, mas é executada ao contrário. Por exemplo:
var nums = [1,2,3,4,5]; var sum = nums.Ds.Reduteright (função (prev, cur, índice, matriz) {retrun pre + cur;});Neste exemplo, a primeira vez que a função de retorno de chamada é executada, o prev é 5 e o curs é 4. O resultado da soma final é o mesmo que o método Reduce (), ambos 15.
Os navegadores que suportam Reduce () e ReduceRight () são: IE9+, Firefox3+, Safari4+, Opera10.5+e Chrome.
Reabastecer
O ECMAScript5 também adiciona 2 novos métodos para mesclar matrizes: Reduce () e ReduceRight ().
Ambos iteram sobre todos os itens da matriz
Reduce (): itere um por um do primeiro item até o final.
ReduceRight (): começando a partir do último item da matriz, iterando para o primeiro item da matriz.
Ambos os métodos aceitam dois parâmetros: a função chamada em cada item (os parâmetros são: valor anterior, valor atual, índice de item, objeto de matriz)
Qualquer valor retornado por esta função será passado automaticamente para o próximo item como o primeiro parâmetro. A primeira iteração ocorre no segundo item da matriz,
Portanto, o primeiro parâmetro é o primeiro item da matriz, e o segundo parâmetro é o segundo item da matriz
e como o valor inicial da base de mesclagem.
Use o método Reduce () para executar a soma de todos os valores em uma matriz, como:
Valores var = [1, 2, 3, 4, 5]; var sum = valores.Reduce (função (prev, cur, índice, matriz) {return prev + cur;}); alerta (soma); // O resultado é o mesmo, mas a direção é o oposto var sum2 = valores.Reduteright (function (prev, cur, índice, matriz) {return prept+cur;}); Alerta (SUM2);A Merge Sort é um algoritmo de classificação eficaz com base na operação de mesclagem. Esse algoritmo é uma aplicação muito típica de dividir e conquistar.
O método de classificação de mesclagem é mesclar duas (ou mais de duas) tabelas ordenadas em uma nova tabela ordenada, ou seja, dividir a sequência a ser classificada em várias subsequências, cada subsequência é ordenada. Em seguida, as subsequências ordenadas são mescladas na sequência geral ordenada.
A classificação de mesclagem é um algoritmo de classificação eficaz com base na operação de mesclagem. Esse algoritmo é uma aplicação muito típica de dividir e conquistar. Mesclar as subsequências ordenadas para obter uma sequência completamente ordenada; isto é, faça cada primeira ordem subsequente e, em seguida, faça a ordem dos segmentos subseqüentes. Se duas tabelas ordenadas forem mescladas em uma tabela ordenada, ela é chamada de fusão de duas vias.