Wie kann der Verkäufer feststellen, ob es ein Produkt mit den richtigen Eigenschaften gibt?
BeispielNachdem wir oft zum Schuhgeschäft gekommen sind und das Modell ausgewählt haben, das Ihnen gefällt, warten wir, bis die Verkäufer feststellen, ob es eine geeignete Größe gibt
Gegeben
Liste der
Variationen . Jede Variation enthält wiederum eine Liste von Attributen und deren Werten.
example-data.json[ { "Size": 37, "Color": "Brown", "Lock": "Zipper" }, { "Size": 37, "Color": "Black", "Lock": "Zipper" }, { "Size": 38, "Color": "Blue", "Lock": "Laces" }, { "Size": 39, "Color": "Blue", "Lock": "Laces" }, { "Size": 39, "Color": "Brown", "Lock": "Zipper" }, { "Size": 39, "Color": "Brown", "Lock": "Laces" }, { "Size": 40, "Color": "Brown", "Lock": "Laces" } ]
Es muss eine Schnittstelle erstellt werden, über die der Verkäufer nach Auswahl der erforderlichen Eigenschaften feststellen kann, ob die Waren auf Lager sind oder nicht.
Bedingungen:
- Eine Variation enthält eine vollständige Liste von Attributen (es kann keine Variation mit unbekannten Werten geben. Wenn das Attribut in einer Variation vorhanden ist, ist es insgesamt vorhanden.)
- Die Länge der Liste der Optionen für Attributwerte variiert von Attribut zu Attribut (ein Attribut kann einen von zwei Werten annehmen, das andere von vier usw.).
- Ein Attribut kann nur einen Wert haben.
Funktionalität:
Die Schnittstelle ist eine Liste von Listen, wobei auf der ersten Ebene der Attributtyp und auf der zweiten der Wert angegeben ist.
Jedes Element kann sich in 3 Zuständen befinden:
- Zur Auswahl - Weiß
- Aktiv - Blau
- In anderen Kombinationen erhältlich - Grau
Zu Beginn sind alle Elemente auswählbar.

Nach Auswahl eines der Attribute werden alle anderen überprüft.

Wir haben 37 gewählt (Könnte mit Braun beginnen, die Logik ist dieselbe). Alle anderen Größen sind weiß (weil sie bedingt sind). Es gibt keine blaue Farbe. Es wird grau, der Rest ist weiß. 37 ist nur auf Blitz. Der Blitz wird also automatisch ausgewählt.
Und hier Aufmerksamkeit! 40 gibt es keine Blitzgröße, dann wird 40 grau.
Wenn wir plötzlich eine blaue Farbe benötigen, dann wird die Größe zurückgesetzt (da 37 kein Blau vorhanden ist) und das Schloss (da es keine 37 Blitze gibt, wenn es so wäre, würde es ausgewählt bleiben), werden die Schnürsenkel automatisch ausgewählt (weil blau nur mit Schnürsenkeln) und Größen werden verfügbar 38, 39.

Die Aufgabe ist anwendbar als:
- Übung für Programmierstudenten
- Testaufgabe zur Auswahl der Kandidaten
- Nur ein interessanter Zeitvertreib für erfahrene Entwickler
Anfrage: Laden Sie die Lösung für das Problem nicht in den Kommentaren hoch.