Erhalte alle möglichen Optionen für eine Matrix in Javascript

8

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%     
CMS 27.03.2016, 07:39
quelle

4 Antworten

6

Das kann eine gute Interviewfrage sein.
Beispiel JS Bin zum Ausführen eines Beispiels.

%Vor%     
chenop 27.03.2016, 08:34
quelle
2

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%     
davidkonrad 27.03.2016 12:57
quelle
0

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

enthält %Vor%

%Vor% %Vor%

plnkr Ссылка

    
guest271314 27.03.2016 16:40
quelle
0

Ein Ansatz, der Array.prototype.reduce() , Array.prototype.sort() , Object.keys() , for loop, while loop

verwendet

%Vor% %Vor%
    
guest271314 29.03.2016 14:17
quelle