elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Simplificar javascript
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Simplificar javascript  (Leído 2,195 veces)
AngelFire

Desconectado Desconectado

Mensajes: 118


WTF :)


Ver Perfil WWW
Simplificar javascript
« en: 9 Marzo 2016, 20:22 pm »

Buenas me preguntaba si existe alguna de simplificar las siguientes funciones de java que claramente lo hice a lo bruto y funcionan. Pero se que no son correcta mas mis conocimientos de javascript son muy basicos. Gracias por cualquier respuesta critica o x de antemano.

Funcion 1multiplica una columna por su valir adyacente que como estaba en un tr y no sabia como obtenerlo fui paciente poniendo los numero :)
Código:
<script> 
function mult2() {
var n2 = parseInt(document.inputOrder.inputQuantity2.value);
document.inputOrder.inputCost2.value=n2*700;
}
function mult3() {
var n3 = parseInt(document.inputOrder.inputQuantity3.value);
document.inputOrder.inputCost3.value=n3*830;
}
function mult5() {
var n5 = parseInt(document.inputOrder.inputQuantity5.value);
document.inputOrder.inputCost5.value=n5*1100;
}
function mult6() {
var n6 = parseInt(document.inputOrder.inputQuantity6.value);
document.inputOrder.inputCost6.value=n6*500;
}
function mult7() {
var n7 = parseInt(document.inputOrder.inputQuantity7.value);
document.inputOrder.inputCost7.value=n7*700;
}
function mult8() {
var n8 = parseInt(document.inputOrder.inputQuantity8.value);
document.inputOrder.inputCost8.value=n8*1850;
}
function mult9() {
var n9 = parseInt(document.inputOrder.inputQuantity9.value);
document.inputOrder.inputCost9.value=n9*2000;
}
function mult10() {
var n10 = parseInt(document.inputOrder.inputQuantity10.value);
document.inputOrder.inputCost10.value=n10*700;
}
function mult13() {
var n13 = parseInt(document.inputOrder.inputQuantity13.value);
document.inputOrder.inputCost13.value=n13*700;
}
function mult14() {
var n14 = parseInt(document.inputOrder.inputQuantity14.value);
document.inputOrder.inputCost14.value=n14*700;
}
function mult16() {
var n16 = parseInt(document.inputOrder.inputQuantity16.value);
document.inputOrder.inputCost16.value=n16*700;
}
function mult18() {
var n18 = parseInt(document.inputOrder.inputQuantity18.value);
document.inputOrder.inputCost18.value=n18*700;
}
function mult27() {
var n27 = parseInt(document.inputOrder.inputQuantity27.value);
document.inputOrder.inputCost27.value=n27*550;
}
function mult28() {
var n28 = parseInt(document.inputOrder.inputQuantity28.value);
document.inputOrder.inputCost28.value=n28*700;
}
function mult32() {
var n32 = parseInt(document.inputOrder.inputQuantity32.value);
document.inputOrder.inputCost32.value=n32*1100;
}
function mult33() {
var n33 = parseInt(document.inputOrder.inputQuantity33.value);
document.inputOrder.inputCost33.value=n33*500;
}
function mult35() {
var n35 = parseInt(document.inputOrder.inputQuantity35.value);
document.inputOrder.inputCost35.value=n35*800;
}

Funcion 2 Suma una columna
Código:
function cost() { 
var s1 = parseInt(document.inputOrder.inputCost1.value);
var s2 = parseInt(document.inputOrder.inputCost2.value);
var s3 = parseInt(document.inputOrder.inputCost3.value);
var s4 = parseInt(document.inputOrder.inputCost4.value);
var s5 = parseInt(document.inputOrder.inputCost5.value);
var s6 = parseInt(document.inputOrder.inputCost6.value);
var s7 = parseInt(document.inputOrder.inputCost7.value);
var s8 = parseInt(document.inputOrder.inputCost8.value);
var s9 = parseInt(document.inputOrder.inputCost9.value);
var s10 = parseInt(document.inputOrder.inputCost10.value);
var s11 = parseInt(document.inputOrder.inputCost11.value);
var s12 = parseInt(document.inputOrder.inputCost12.value);
var s13 = parseInt(document.inputOrder.inputCost13.value);
var s14 = parseInt(document.inputOrder.inputCost14.value);
var s15 = parseInt(document.inputOrder.inputCost15.value);
var s16 = parseInt(document.inputOrder.inputCost16.value);
var s17 = parseInt(document.inputOrder.inputCost17.value);
var s18 = parseInt(document.inputOrder.inputCost18.value);
var s19 = parseInt(document.inputOrder.inputCost19.value);
var s20 = parseInt(document.inputOrder.inputCost20.value);
var s21 = parseInt(document.inputOrder.inputCost21.value);
var s22 = parseInt(document.inputOrder.inputCost22.value);
var s23 = parseInt(document.inputOrder.inputCost23.value);
var s24 = parseInt(document.inputOrder.inputCost24.value);
var s25 = parseInt(document.inputOrder.inputCost25.value);
var s26 = parseInt(document.inputOrder.inputCost26.value);
var s27 = parseInt(document.inputOrder.inputCost27.value);
var s28 = parseInt(document.inputOrder.inputCost28.value);
var s29 = parseInt(document.inputOrder.inputCost29.value);
var s30 = parseInt(document.inputOrder.inputCost30.value);
var s31 = parseInt(document.inputOrder.inputCost31.value);
var s32 = parseInt(document.inputOrder.inputCost32.value);
var s33 = parseInt(document.inputOrder.inputCost33.value);
var s34 = parseInt(document.inputOrder.inputCost34.value);
var s35 = parseInt(document.inputOrder.inputCost35.value);
var s36 = parseInt(document.inputOrder.inputCost36.value);
var s37 = parseInt(document.inputOrder.inputCost37.value);
var s38 = parseInt(document.inputOrder.inputCost38.value);
var s39 = parseInt(document.inputOrder.inputCost39.value);
document.inputOrder.inputCost40.value=s1+s2+s3+s4+s5+s6+s7+s8+s9+s10+s11+s12+s13+s14+s15+s16+s17+s18+s19+s20+s21+s22+s23+s24+s25+s26+s27+s28+s29+s30+s31+s32+s33+s34+s35+s36+s37+s38+s39;
}

Afortunadamente son unas pocas celdas :) pero algún día podía tocarme mas y para entonces espero alguno de usted me diga como enfrentarme al fenómeno. Creo que con un array o for se conseguiría pero recién entro en javascript.
Gracias por leer.


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Simplificar javascript
« Respuesta #1 en: 9 Marzo 2016, 20:32 pm »

A lo pronto, lo ideal es que n fuera un array de 39 elementos, y accedieras a ellos como tal.
inputQuantity también debería serlo.

Así, al función quedaría:
Código
  1. function mult(k) {
  2.    var n[k] = parseInt(document.inputOrder.inputQuantity[k].value);
  3.    document.inputOrder.inputCost[k].value=n[k]*700;
  4. }

Y al sumarlo, solo necesitarías un for.


En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Simplificar javascript
« Respuesta #2 en: 9 Marzo 2016, 21:00 pm »

Uh, yo no veo ningún patrón aquí. Parece bastante aleatorio, multiplicas por valores que no se donde estén (700, 830, 1100, 500, 700???), tienes un montón de funciones que no veo como las llames.

Cost puede ser facilmente rescrita como:

Código
  1. var sum = 0;
  2. for(var i = 1; i < 40; i++){
  3.    sum += Number(document.inputOrder['inputCost' + i].value);
  4. }
  5. document.inputOrder.inputCost40.value = sum;

Aunque lo ideal seria que tuvieras un arreglo como dice ivancea. El input que actua como contenedor del resultado ponlo en otro lugar fuera del arreglo. Así puedes reescribirlo como:

Código
  1. inputResultado.value = document.inputOrder.inputCost.reduce(function(a, b){
  2.     return a + Number(b.value);
  3. }, 0);
En línea

AngelFire

Desconectado Desconectado

Mensajes: 118


WTF :)


Ver Perfil WWW
Re: Simplificar javascript
« Respuesta #3 en: 10 Marzo 2016, 00:03 am »

Las funciones las llamo mediante onchange="mult2(); cost()"




« Última modificación: 10 Marzo 2016, 00:45 am por AngelFire » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
simplificar dos numeros
Programación Visual Basic
erick185 2 2,002 Último mensaje 9 Mayo 2006, 20:46 pm
por Ironhorse
Simplificar codigo « 1 2 »
.NET (C#, VB.NET, ASP)
matiasramos 10 5,989 Último mensaje 24 Junio 2013, 21:09 pm
por Novlucker
ayuda a simplificar bat « 1 2 »
Scripting
binario010101 19 8,751 Último mensaje 13 Octubre 2013, 16:48 pm
por binario010101
MOVIDO: Simplificar javascript
Programación General
Eleкtro 0 1,731 Último mensaje 10 Marzo 2016, 07:27 am
por Eleкtro
¿Se puede simplificar el código del Checkbutton en tkinter? [SOLUCIONADO] :)
Scripting
Yidu 2 3,685 Último mensaje 10 Julio 2017, 19:03 pm
por Yidu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines