JavaScript - Seleccionar datos de un array a partir de otro

 
Vista:
sin imagen de perfil
Val: 11
Ha disminuido 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Seleccionar datos de un array a partir de otro

Publicado por Jorge (14 intervenciones) el 07/06/2023 19:34:07
Hola, no tengo experiencia en JavaScript y estoy intentando extraer algunos datos de un array pero recorriendo los datos de otro. Por ejemplo:
Recorriendo el Array1, encontrar el correspondiente en Array2 y volcarlo en el Array destino
Gracias de antemano.

1
2
3
4
5
6
7
8
9
10
11
12
13
Array1
['15', '23']   (el id es carácter)
 
Array2
{ID: 12, DESC: 'Articulo 12'}   (el id es numérico)
{ID: 15, DESC: 'Articulo 15'}
{ID: 23, DESC: 'Articulo 23'}
{ID: 71, DESC: 'Articulo 71'}
...
 
Array destino
{value: 15, text: 'Articulo 15'}
{value: 23, text 'Articulo 23'}
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
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Seleccionar datos de un array a partir de otro

Publicado por Alejandro (532 intervenciones) el 07/06/2023 21:40:21
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
¿Cómo lo estás intentando?

Con una linea puedes obtener el mismo resultado pero no sería siguiendo tu ejemplo.
Con filter() recorres Array2 y usas el ID en el includes() de Array1 para retornar el elemento coincidente.

Con forme a tu ejemplo:
Iteras Array1 y anidas la iteración de Array2
comparas el elemento de Array1 con el ID del elemento de Array2 y si coincide agregas a Array_destino el elemento de Array2 e interrumpes la iteración de Array2.
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: 11
Ha disminuido 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Seleccionar datos de un array a partir de otro

Publicado por Jorge (14 intervenciones) el 07/06/2023 21:46:08
Gracias Alejandro, el problema es que no tengo experiencia para la solucion que me dices
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: 11
Ha disminuido 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Seleccionar datos de un array a partir de otro

Publicado por jorge (14 intervenciones) el 07/06/2023 23:39:50
Esto es lo que estoy intentando pero no funciona:

const selectdArts = arr1.forEach(e => arr2.find(s => s.ID == e)({ value: s.ID, text: s.DESC })));
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
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Seleccionar datos de un array a partir de otro

Publicado por Alejandro (532 intervenciones) el 08/06/2023 00:41:34
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
La primer opción que te di
1
selectdArts = arr2.filter( x => arr1.includes( String(x.ID) ) );

la opción que planteas
1
2
selectdArts =[];
arr1.map( x => array2.find( y => {y.ID==x?selectdArts.push(y):false;} ) );
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 11
Ha disminuido 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Seleccionar datos de un array a partir de otro

Publicado por Jorge (14 intervenciones) el 08/06/2023 14:51:02
Alejandro, hice la prueba con ambas opciones pero me dan error.
Con la primer opción:

Uncaught TypeError: arr2.filter is not a function

con la segunda

Expected an assignment or function call and instead saw an expression no-unused-expressions
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

Seleccionar datos de un array a partir de otro

Publicado por Yamil Bracho (2 intervenciones) el 08/06/2023 15:18:04
Puedes probra algo como :

arr1 = ['15', '23'];

arr2 = [
{ID: 12, DESC: 'Articulo 12'},
{ID: 15, DESC: 'Articulo 15'},
{ID: 23, DESC: 'Articulo 23'},
{ID: 71, DESC: 'Articulo 71'},
];

selectdArts =[];
arr1.forEach(ele => {
id = parseInt(ele);
arr2.forEach(o => {
if (o.ID == id) {
selectdArts.push(o)
}
})
});

console.log(JSON.stringify(selectdArts));

Por supuesto lo puedes ir optimizando y quitando lineas de codigo pero asi te das una idea d elo que andas buscando..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 11
Ha disminuido 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Seleccionar datos de un array a partir de otro

Publicado por Jorge (14 intervenciones) el 08/06/2023 17:05:06
Gracias Yamil, funciono
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
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Seleccionar datos de un array a partir de otro

Publicado por Alejandro (532 intervenciones) el 08/06/2023 17:00:23
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Será que no tienes bien declarado arr1 y arr2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
arr1 = ['15', '23'] ;
 
arr2 = [
	{ID: 12, DESC: 'Articulo 12'},
	{ID: 15, DESC: 'Articulo 15'},
	{ID: 23, DESC: 'Articulo 23'},
	{ID: 71, DESC: 'Articulo 71'}
];
 
selectdArts  = arr2.filter( x => arr1.includes( String(x.ID) ) );
console.log(selectdArts)
 
selectdArts = [];
arr1.map( x => arr2.find( y => { y.ID == x ? selectdArts.push(y) : false; } ) );
console.log(selectdArts)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 11
Ha disminuido 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Seleccionar datos de un array a partir de otro

Publicado por Jorge (14 intervenciones) el 08/06/2023 17:17:30
Alejandro, la primer opcion si funciono, el error habia do mio pero me encuentro con el siguiente problema:
si en Array1 tengo un valor, por ejemplo '03', no lo esta incluyendo en el array destino. Por otro lado, como podria agregar al array destino, solo el campo DESC, sin el ID?
Array1
['03', '15', '23'] (el id es carácter)

Array2
{ID: 3, DESC: 'Articulo 12'} (el id es numérico)
{ID: 15, DESC: 'Articulo 15'}
{ID: 23, DESC: 'Articulo 23'}
{ID: 71, DESC: 'Articulo 71'}
...

Array destino
{value: 15, text: 'Articulo 15'}
{value: 23, text 'Articulo 23'}
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
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Seleccionar datos de un array a partir de otro

Publicado por Alejandro (532 intervenciones) el 08/06/2023 17:55:24
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Analiza un poco el funcionamiento de filter(), includes(), map(), find() y aclara la idea de que quieres obtener

arr2.filter(condición) devuelve los elementos existentes en arr2 que cumplen con la condición, que existen en arr1, '03'!='3'

arr1.map(función) itera todos los elementos de arr1 aplicando la función en su argumento.
arr2.find(condición) devuelve el primer elemento que cumple con la condición, en este caso no hice nada con él pero en la condición metí la función que agrega el elemento al selectdArts. Si notas agrego el elemento tal cual push(y) es obvio lo que hay que cambiar para que agregue un dato en especifico.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 11
Ha disminuido 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Seleccionar datos de un array a partir de otro

Publicado por Jorge (14 intervenciones) el 08/06/2023 17:59:37
Gracias Alejandro por toda tu ayuda.
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