Arranjo //Repositório JavaScript

Descrição

Arranjo matemático com repetição em elementos de um array.
Criado: 2005.08.08 - Modificado 2005.11.29

Código (Download)

//+ Jonas Raoni Soares Silva
//@ http://jsfromhell.com/array/arrange [rev. #1]

arrange = function(v, n, m){
    for(var j, k, i = -1, l = v.length, q = Math.pow(l, n), r = new Array(q), c = (new Array(n + 1)).join(0).split(""); ++i < q;)
        for(r[i] = new Array(j = n), k = 1; j--; r[i][j] = m ? c[j] : v[c[j]], k && (++c[j] != l && --k, c[j] %= l));
    return r;
};

Exemplo (Exemplo)

<script type="text/javascript">
//<![CDATA[

var a = ["A", "B", "C"], q = 3, j = arrange(a, q);
document.write(
    "<h2>", a.join(" - "), " : ", q, " = ", j.length, "</h2>",
    j.join("<br />")
);

//]]>
</script>

Ajuda

arrange(vetor: Array, n: Integer, [usarIndice: Boolean = false]): Array
Efetua o arranjo matemático (com repetição), ou seja, agrupamentos formados com n elementos (n < tamanho da array), de forma que os elementos sejam distintos entre sí pela ordem ou pela espécie. No arranjo com repetição podem aparecer elementos repetidos no mesmo grupo. A função retorna um array bidimensional, onde linha = arranjo e coluna = elemento.
vetor
vetor que será arranjado
n
quantidade de elementos em cada agrupamento
usarIndice
define o tipo de retorno da função, se true, retorna apenas um "mapa" contendo os índices do parâmetro vetor, se false, usa os valores do parâmetro vetor

Ranque (Votos: 54)

2.09