JavaScript - funcion que iteraciones con diferente valores

 
Vista:
sin imagen de perfil

funcion que iteraciones con diferente valores

Publicado por Luis (10 intervenciones) el 21/01/2023 12:29:28
Para una parte de mi codigo necesito una funcion que tenga de entrada las variables r, v, t, a , cada una de esas variables van a tomar 3 valores ya predeterminados. Yo tengo ya hecha una funcion que hace todos los calculos necesarios pero tomando cada variable con un valor solo concreto. En principio tendria que sacar todos los resultados con todas las combinaciones posibles que si no me equivoco seria 3 elevado a 4 = 81 combinaciones totales, porque despues habra que comparar cada resultado con algun valor (eso lo tengo que pensar ...) para que al final te diga los valores mas adecuados para r, v, t ,a

me ayudan por favor?

Saludos y gracias.
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: 40
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

funcion que iteraciones con diferente valores

Publicado por Marlon (90 intervenciones) el 21/01/2023 21:45:25
A ver si entiendo. Necesitas una función que reciba cuatro valores (r, v, t, a) y esas ya tienen un valor predeterminado o tres valores cada una:

1
2
3
4
5
6
7
8
9
10
11
12
//ejemplo
r = 1;
v = 2;
t = 3;
a = 4;
 
//o asi
 
r = [1, 2, 3];
v = [4, 5, 6];
t = [7, 8, 9];
a = [10, 11, 12];

y despues de eso cada necesitas sacar los resultados de todas la combinaciones posibles pero usando sumas, restas ...etc?
o como?
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

funcion que iteraciones con diferente valores

Publicado por Luis (10 intervenciones) el 22/01/2023 12:33:15
Yo ya tengo una función que recibe los 4 valores esos como datos y hace cálculos con ellos.
Se trata de hacer otra función (o lo mismo es modificar la que ya tengo), que haga esos mismos cálculos pero tomando como valores por ejemplo lo que me pones:

r = [1, 2, 3];
v = [4, 5, 6];
t = [7, 8, 9];
a = [10, 11, 12];

Con la combinación de todos esos datos se tendría 81 resultados distintos. Supongo que se haría con un bucle (o bucles anidados).

Mas claro ahora?

Saludos y gracias
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: 40
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

funcion que iteraciones con diferente valores

Publicado por Marlon (90 intervenciones) el 22/01/2023 21:57:55
Si podrías usar bucles anidados

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function calcular(r, v, t, a) {
  let results = [];
  for (let i = 0; i < r.length; i++) {
    for (let j = 0; j < v.length; j++) {
      for (let k = 0; k < t.length; k++) {
        for (let l = 0; l < a.length; l++) {
          results.push(r[i] + v[j] + t[k] + a[l]);
        }
      }
    }
  }
  return results;
}
 
console.log(calcular(r, v, t, a));

Sin embargo para no tener problemas de rendimiento en caso de que el código escale y sus valores sean muchísimos es mejor usar la funcion Array.map()

por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
function calculatesd(r, v, t, a) {
  let results = r.map(rVal => v.map(vVal => t.map(tVal => a.map(aVal => rVal + vVal + tVal + aVal)))).flat()
  return results;
}
 
let r = [1, 2, 3];
let v = [4, 5, 6];
let t = [7, 8, 9];
let a = [10, 11, 12];
 
console.log(calculatesd(r, v, t, a));

En mi opinión prefiero usar map() queda mas corto el código y para mi mas legible. Saludos
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