Estoy aprendiendo un nuevo concepto en JavaScript. ¿Puede algún cuerpo ayudarme a lograr los siguientes resultados?
Values1(this.getField("Text6")) es un cuadro de texto de varias líneas
Values2(this.getField("Text7")) es un cuadro de texto de varias líneas
El resultado (this.getField("Text8")) es el producto del valor 1 y el valor 2
Probé el siguiente código para mostrar solo los valores 2 en el cuadro de resultados usando el método foreach. Pero no estoy seguro de cómo realizar la multiplicación dentro de él.
var values1 = this.getField("Text6").value.split('\r'); var values2 = this.getField("Text7").value.split('\r'); this.getField("Text8").value = ""; values2.forEach(element => this.getField("Text8").value +=(element+'\n'));2 :
El segundo argumento de la devolución de llamada forEach es el índice de matriz. Puede usar eso para indexar en values1 , para que pueda multiplicarlos.
values2.forEach((element, index) => this.getField("Text8").value +=(element * values1[index] + '\n'));getField no es una función nativa de JavaScript. Lo definiré en el fragmento a continuación.
Algunas observaciones:
split('\r') puede no ser la mejor manera de obtener las líneas, ya que también puede haber \n caracteres allí. En su lugar, haría coincidir los números con una expresión regular ( [\d.]+ ).Number .+= , cree una matriz con los productos y luego únalos en un texto de varias líneas para asignar (una vez) al campo. var getField = document.getElementById.bind(document); var collect = id => (this.getField(id).value.match(/[\d.]+/g) || []).map(Number); var values1 = collect("Text6"); var values2 = collect("Text7"); this.getField("Text8").value = values2.map((element, i) => element*values1[i]).join("\n"); textarea { width: 5em; height: 150px; margin-right: 30px; } <textarea id=Text6> 1 2 3 4 </textarea> <textarea id=Text7> 4 5 6 7 </textarea><textarea id=Text8></textarea>