Tengo dos matrices en las que necesito verificar la diferencia y devolver la suma de todos los elementos de la matriz antes del elemento modificado y lo incluye.
Actualmente tengo dos matrices de altura de área que se actualizan cuando se cambia el valor de entrada. También se pueden cambiar 2 o más elementos de la matriz, luego es necesario sumar todos los elementos cambiados y todos los elementos antes del último elemento cambiado.
Por ejemplo matrices:
let oldArea = [3, 4, 2]
let newArea = [3, 6, 2]
Intenté algo como esto (hace su trabajo parcialmente, pero la longitud de la matriz puede ser de 5 o más elementos, por lo que esta solución es mala):
let oldArea = [3, 4, 2] let newArea = [3, 6, 2] let changedArea = []; if ( oldArea[0] !== newArea[0] && oldArea[1] === newArea[1] ) { changedArea.push(newArea[0]); } else if ( oldArea[1] !== newArea[1] && oldArea[0] === newArea[0] && oldArea[2] === newArea[2] ) { changedArea.push(newArea[0] + newArea[1]); } else changedArea.push(newArea.reduce((a, b) => a + b, 0)); let changedAreaHeight = changedArea.reduce((a, b) => a + b, 0); console.log(changedAreaHeight)Estaré agradecido por cualquier consejo con otras soluciones.
Puede usar un bucle for simple y romper cuando los elementos no son los mismos
let oldArea = [3, 4, 2] let newArea = [3, 6, 2] let final = 0; for (let i = 0; i < newArea.length; i++) { if (newArea[i] === oldArea[i]) { final += newArea[i] } else { final += newArea[i] break; } } console.log(final)