Ich habe ein "Gegenstand" -Objekt in JavaScript, und der Gegenstand kann Einstellungen wie haben Farbe, Größe, etc.
Ich muss alle möglichen Kombinationen in einem Array erhalten.
Nehmen wir an, wir haben ein Element, das so aussieht:
%Vor%Ich muss das irgendwie verstehen:
%Vor% Hier ist eine none rekursive Lösung. Sie benötigt ein leeres oder existierendes settings
"matrix" und ein values
Array und gibt eine neue Matrix als eine Kombination von existierendem Matrixinhalt zurück, der für jeden neuen Wert geklont wird, angehängt mit Paaren von neuen Werteinstellungselementen.
[A]
- & gt; [1,2]
gibt [A][1][A][2]
[A][1][A][2]
- & gt; [X,Y]
gibt [A][1][X][A][2][Y][A][2][X][A][1][Y]
und so weiter
%Vor%Sie können nun die gewünschten Einstellungen literal auf diese Weise erstellen:
%Vor%demo - & gt; Ссылка
Das obige erzeugt dies:
%Vor% Sie können Array.prototype.map()
, for
loop, while
loop, Array.prototype.concat()
verwenden. Iterate gender
-Werte; Wählen Sie jeden Wert von color
, size
nacheinander aus, beginnend mit dem Index 0
von beiden; Iteration des am weitesten benachbarten Arrays von aktuellem gender
, inkrementiere den Index des nächsten benachbarten Arrays; füge die resultierenden zwei gender
-Arrays zu einem einzigen Array zusammen, das alle Kombinationen von gender
, color
, size
plnkr Ссылка
Ein Ansatz, der Array.prototype.reduce()
, Array.prototype.sort()
, Object.keys()
, for
loop, while
loop
Tags und Links javascript arrays json permutation underscore.js