Tarea de programación minorista

¿Cómo ayudar al vendedor a determinar si hay un producto con las características correctas?

Ejemplo
Habiendo venido a menudo a la zapatería y eligiendo el modelo que le gusta, esperamos hasta que los vendedores determinen si hay un tamaño adecuado.

Dado


Lista de variaciones . Cada variación a su vez contiene una lista de atributos y sus valores.

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 necesario crear una interfaz mediante la cual el vendedor, después de haber seleccionado las propiedades necesarias, pueda determinar si los productos están en stock o no.

Términos:


  • Una variación contiene una lista completa de atributos (no puede haber variación con valores desconocidos, si el atributo está presente en una variación, entonces está en todos)
  • La longitud de la lista de opciones para los valores de los atributos varía de un atributo a otro (un atributo puede tomar uno de dos valores, el otro de cuatro, etc.)
  • Un atributo solo puede tener un valor.

Funcionalidad


La interfaz es una lista de listas, donde en el primer nivel está el tipo de atributo, en el segundo está su valor.

Cada elemento puede estar en 3 estados:

  • Disponible para selección - Blanco
  • Activo - Azul
  • Disponible en otras combinaciones - Gris

Al principio, todos los artículos son seleccionables.



Después de seleccionar uno de los atributos, se revisan todos los demás.



Elegimos 37 (podría comenzar con marrón, la lógica es la misma). Todos los demás tamaños son blancos (porque son por condición). No hay color azul. Se vuelve gris, el resto son blancos. 37 está solo en Lightning. Entonces el rayo se selecciona automáticamente. Y aquí, ¡atención! 40 no hay tamaño de rayo, luego 40 se vuelve gris.

Si de repente necesitáramos un color azul, el tamaño se restablece (ya que 37 no es azul) y el bloqueo (ya que no hay 37 rayos, si lo fuera, permanecería seleccionado), los cordones se seleccionan automáticamente (porque azul solo con cordones), y los tamaños están disponibles 38, 39.



La tarea es aplicable como:

  • Práctica para estudiantes de programación.
  • Prueba de tarea para la selección de candidatos
  • Solo un pasatiempo interesante para desarrolladores experimentados

Solicitud: no cargue la solución al problema en los comentarios.

Source: https://habr.com/ru/post/es428662/


All Articles