Convertir una matriz 2D a una lista JSON -- javascript campo con array campo con functional-programming camp codereview Relacionados El problema

Converting a 2D array to a JSON list


0
vote

problema

Español

Me pregunto si podría implementar esto de una manera más limpia, más elegante y estricta:

  const convert2dArrayToJsonList = (array) => {      if (!is2dArrayParsableToJsonList(array)) {         throw new Error("The 2D array cannot be converted to a json list" + array);     }      const propertyKeys = array[0];      return array         .slice(1)         .map( row => {             return row.reduce( (accumulatedElement, propertyValue, currentIndex, array) => {                  accumulatedElement[propertyKeys[currentIndex]] = propertyValue;                 return accumulatedElement;             }, {});         }); }   

La implementación de Is2DarrayParsableToJsonlist (Array) no es relevante en este contexto, hace lo que dice.

El parámetro de la matriz 2D tiene las teclas de propiedad en la fila superior y todas las demás filas representan elementos individuales en la lista.

Original en ingles

I am wondering if I could implement this in a cleaner, more elegant, strictly functional way:

const convert2dArrayToJsonList = (array) => {      if (!is2dArrayParsableToJsonList(array)) {         throw new Error("The 2D array cannot be converted to a json list" + array);     }      const propertyKeys = array[0];      return array         .slice(1)         .map( row => {             return row.reduce( (accumulatedElement, propertyValue, currentIndex, array) => {                  accumulatedElement[propertyKeys[currentIndex]] = propertyValue;                 return accumulatedElement;             }, {});         }); } 

The implementation of is2dArrayParsableToJsonList(array) is not relevant in this context, it does what it says.

The 2D array parameter has the property keys in the top row and all other rows represent individual elements in the list.

        

Lista de respuestas

1
 
vote

Aquí está lo que he llegado;

  ai = random.choice(list(graph.keys())) print(', '.join(self.graph.keys())) 4  

La idea central es que el mapa le brinda tanto un valor como un índice. Entonces, cuando se ocupa de las llaves, vemos 'FOO / 1', 'BAR / 2', 'BAZ / 3'.

 

Here's what I've come up with;

import expect from 'expect';  const is2dArrayParsableToJsonList = () => true;  const convert2dArrayToJsonList = (array) => {      if (!is2dArrayParsableToJsonList(array)) {         throw new Error("The 2D array cannot be converted to a json list" + array);     }      const [propertyKeys, ...rows] = array;     const rowToObject = row => Object.assign(... propertyKeys.map( (key,idx) => ({ [key]: row[idx] })));     return rows.map(rowToObject); }  const input = [     ['foo', 'bar', 'baz'],     [1,2,3],     [4,5,6] ];  const output = [     {foo:1, bar:2, baz:3},     {foo:4, bar:5, baz:6}, ];  expect(convert2dArrayToJsonList(input)).toEqual(output); 

Core idea is that map gives you both a value and index. So when you map over the keys, we see 'foo/1', 'bar/2', 'baz/3'.

 
 

Relacionados problema

3  ¿Quick-Sort una lista vinculada?  ( Quick sort a linked list ) 
Tengo un pequeño proyecto donde estoy implementando una lista de enlaces inmutables (no solo ...) basada en una estructura de pares como la celda de los contr...

3  Definiendo la transposición en una colección de colecciones irregulares  ( Defining transpose on a collection of irregular collections ) 
Me pidieron que presentara mi solicitud de revisión de código en https: //stackoverflow.com/questions/10672046/defining-transpose-on-a-collection-of-irregula...

10  Obteniendo la última fecha donde ocurrió un día de la semana dado  ( Getting the last date where a given week day occurred ) 
Estoy tratando de aprender un poco sobre la programación funcional y como mi herramienta, elegí F # ya que soy un desarrollador de .NET y el medio ambiente es...

13  Muestreo de reservorio en Clojure  ( Reservoir sampling in clojure ) 
Estoy aprendiendo a Clojure y decidí comenzar por intentar escribir una solución a un algoritmo bastante simple, un muestreo de reservorio. Como dije, estoy a...

1  Implementación ingenua de la memorización automática  ( Naive implementation of automatic memoisation ) 
Escribí el código a (ingenuamente) realizar la memorización automática. Intenté escribirlo en un estilo de programación funcional, y así no hizo uso de ningun...

2  HackerRank: Rotación de la matriz izquierda en Python  ( Hackerrank left array rotation in python ) 
Aquí está el problema en Hackerrank . Quiero saber cómo puedo mejorar este código. Estoy tratando principalmente de mejorar las siguientes habilidades: la do...

9  Eliminación de árbol negro rojo en F #  ( Deleting from red black tree in f ) 
Sí, estoy muy lentamente a través de las estructuras de datos puramente funcionales. Así que pasé por la sección sobre árboles negros rojos. Lo que presenta e...

25  Proyecto EULER PROBLEMA 2 EN COTJURE  ( Project euler problem 2 in clojure ) 
Estoy en el proceso de aprendizaje de Clojure. Soy bastante nuevo en la programación funcional y me gustaría saber si mi código huele o si hay alguna implicac...

4  Simple Haskell Key Value File Store  ( Simple haskell key value file store ) 
Como ejercicio en el aprendizaje de Haskell, implementé una tienda de valores clave simple, donde puede poner y obtener valores (como ByteString s). (Para r...

18  Reemplazo de clases de Python con módulos [cerrados]  ( Replacing python classes with modules ) 
cerrado. Esta pregunta es off-topic . Actualmente no está aceptando respuestas. ¿Quieres ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos