JavaScript - Convertir un Array Json en un Objeto de Pares.

 
Vista:
Imágen de perfil de Javier Osvaldo
Val: 16
Ha disminuido 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Convertir un Array Json en un Objeto de Pares.

Publicado por Javier Osvaldo (3 intervenciones) el 16/07/2019 18:25:27
Buenas Colegas, les escribo porque necesito resolver con Javascript lo siguiente:

Recibo un objeto Json desde una API como esto:

Array(5)
0: {keyDescuento: 1, descripcion: "LARGA DISTANCIA"}
1: {keyDescuento: 2, descripcion: "REPARTO"}
2: {keyDescuento: 3, descripcion: "RETIRO"}
3: {keyDescuento: 4, descripcion: "NO DESCUENTA COMBUSTIBLE"}
4: {keyDescuento: 0, descripcion: "SIN IDENTIFICAR"}

Y necesito convertirlo en algo como esto:
{0: "SIN IDENTIFICAR", 1: "LARGA DISTANCIA", 2: "REPARTO", 3: "RETIRO", 4: "NO DESCUENTA COMBUSTIBLE"}

0: "SIN IDENTIFICAR"
1: "LARGA DISTANCIA"
2: "REPARTO"
3: "RETIRO"
4: "NO DESCUENTA COMBUSTIBLE"

Conde el valor de la izquierda, es el mismo que el keyDescuento.

Otro ejemplo seria:
Array(2)
0: {idSociedad: 1100, sociedadDescripcion: "ALSA"}
1: {idSociedad: 1200, sociedadDescripcion: "CASA"}

Y convertirlo en:
{1100: "ALSA", 1200: "CASA"}

1100: "ALSA"
1200: "CASA"

Desde ya muchas gracias.

Javier.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 183
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Convertir un Array Json en un Objeto de Pares.

Publicado por Yamil (78 intervenciones) el 16/07/2019 18:54:16
Seria algo como :

1
2
3
4
var obj = {};
for(var i = 0; i < data.length; i++) {
  obj[data[i].keyDescuento] = data[i].descripcion
}

o tambien

1
2
3
4
var obj ={}
data.forEach(function( item ) {
  obj[item.keyDescuento] = item.descripcion;
});
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Javier Osvaldo
Val: 16
Ha disminuido 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Convertir un Array Json en un Objeto de Pares.

Publicado por Javier Osvaldo (3 intervenciones) el 16/07/2019 19:06:01
Mil gracias Yamil, es exactamente lo que necesito. Una consulta, se podría hacer con una función en flecha usando map o algún otro metodo?

Gracias.

Javier.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 183
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Convertir un Array Json en un Objeto de Pares.

Publicado por Yamil (78 intervenciones) el 16/07/2019 19:24:17
Si puedes usar un arrow function (desde Es6 en adelante). Seria algo como :

1
2
3
4
5
6
7
MyFunc = (data) => {
	var result = {};
	data.forEach(function( item ) {
		result[item.keyDescuento] = item.descripcion;
	});
	return result;
};

y la llamas usando
1
var obj = MyFunc(data)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Javier Osvaldo
Val: 16
Ha disminuido 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Convertir un Array Json en un Objeto de Pares.

Publicado por Javier Osvaldo (3 intervenciones) el 16/07/2019 19:27:01
Bien, excelente ayuda, mil gracias.

Javier.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar