JavaScript - Simplificar Funciones Cadenas Array

 
Vista:
Imágen de perfil de Jose

Simplificar Funciones Cadenas Array

Publicado por Jose (4 intervenciones) el 20/08/2017 04:23:55
Saludos chicos, he diseñado un proyecto que tal como esta funciona de manera perfecta pero me gustaria saber si me pueden orientar en como simplificar el codigo motivado a que el mismo posee muchas entradas que explicare al mostrar el código en cuestion:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// VARIABLE DE MATERIA PRIMA EXISTEN COMO 200 ENTRADAS
// .n = Nombre .v = Valor .t = Tipo de Materia Prima liq = Liquido sol = Solido
agu = {n: 'Agua H2O = ', v: 0, t: 'liq'};
texa = {n: 'Texapon = ', v: 0, t: "sol"};
alcet = {n: 'Alcohol Cetilico -  CH3 (CH2)15OH = ', v: 0, t: "liq"};
aceric = {n: 'Aceite de Ricino  = ', v: 0, t: "liq"};
 
// FUNCION LIQUIDO
function liquido(UI){
if (UI<=1){
tcbl=" Litro de ";
agu.v = (agu.v*1000).toFixed(2)+ml;
alcet.v = (alcet.v*1000).toFixed(2)+ml;
aceric.v = (aceric.v*1000).toFixed(2)+ml;
aciace.v = (aciace.v*1000).toFixed(2)+ml;
}
else {
tcbl=" Litros de ";
if (agu.v*1000>=1000){agu.v=(agu.v).toFixed(2)+li;}else{agu.v=(agu.v*1000).toFixed(2)+ml;};
if (alcet.v*1000>=1000){alcet.v=(alcet.v).toFixed(2)+li;}else{alcet.v=(alcet.v*1000).toFixed(2)+ml;};
if (aceric.v*1000>=1000){aceric.v=(aceric.v).toFixed(2)+li;}else{aceric.v=(aceric.v*1000).toFixed(2)+ml;};
if (aciace.v*1000>=1000){aciace.v=(aciace.v).toFixed(2)+li;}else{aciace.v=(aciace.v*1000).toFixed(2)+ml;};
}
}
 
// FUNCION SOLIDO
function solido(UI){
if (UI<=1){
tcbs=" Kilo de ";
texa.v = (texa.v*1000).toFixed(2)+gr;
cmc.v = (cmc.v*1000).toFixed(2)+gr;
sal.v = (sal.v*1000).toFixed(2)+gr;
cvp.v = (cvp.v*1000).toFixed(2)+gr;
}
else {
tcbs=" Kilos de ";
if (texa.v*1000>=1000){texa.v=(texa.v).toFixed(2)+kl;}else {texa.v=(texa.v*1000).toFixed(2)+gr;};
if (cmc.v*1000>=1000){cmc.v=(cmc.v).toFixed(2)+kl;}else{cmc.v=(cmc.v*1000).toFixed(2)+gr;};
if (sal.v*1000>=1000){sal.v=(sal.v).toFixed(2)+kl;}else{sal.v=(sal.v*1000).toFixed(2)+gr;};
if (cvp.v*1000>=1000){cvp.v=(cvp.v).toFixed(2)+kl;}else{cvp.v=(cvp.v*1000).toFixed(2)+gr;};
}
}

Las funciones Liquido y Solido permiten tratar a los valores de las respectivas variables, al ser aprox 200 entradas quiere decir que el codigo:
VARIABLE.v = (VARIABLE.v*1000).toFixed(2)+gr;
y el codigo
if (VARIABLE.v*1000>=1000){VARIABLE.v=(VARIABLE.v).toFixed(2)+kl;}else {VARIABLE.v=(VARIABLE.v*1000).toFixed(2)+gr;};
debo repetirlo tantas variables esten incluidas.

He analizado lineas for pero no logro atinar para diseñar el codigo he utilizado una cadena de concatenaciones de Calc que me ayudan a copiar y pegar segun el nombre de la variable con una formula como esta =CONCAT(A4;".v = ";"(";A4;".v*1000).toFixed(2)+";SI(D4="s";"gr";"ml");";") Para tener como resultado esto: VARIABLE.v = (VARIABLE.v*1000).toFixed(2)+gr;

Es de importancia hacer notar que los resultados obtenidos en las funciones anteriores son utilizados por funciones de salida que interactuan directamente con los datos de salida, el fragmento de codigo al que hago referencia es este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function prueba() {
var UI=document.getElementById('entradaPrueba').value;
if(isNaN(UI)){return false;}
producto = "Producto de Prueba de un SOLIDO";
agu.v = UI*91.8/100;
texa.v = UI*3/100;
liquido(UI);
solido(UI);
resul =
tca+UI+tcbl+producto+tcc+br+
a+agu.n+agu.v+br+
b+texa.n+texa.v+br;
 
var procedimiento="<h1>PROCEDIMIENTO:</h1> PRODUCTO DE PRUEBA";
 
document.getElementById('salida').innerHTML=resul,
document.getElementById('procedimiento').innerHTML=procedimiento;
}

Gracias de antemano por la colaboración que puedan brindarme.
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