Intento sumar debajo de dos matrices y uso debajo de dos métodos:
A = [ 25.8, 27, 24.099999999999998, 30.070000000000004, 34.3, 34.300000000000004, 34.3, 33, 29.2, 29.2, 27.6, 28.999999999999996, 29.310000000000002, 27.000000000000004 ] B = [ '0.00387000', '0.00472000', '0.00534000', '0.00460000', '0.00060000', '0.00032000', '0.00053000', '0.00327000', '0.00217000', '0.00217000', '0.00460000', '0.00415000', '0.00852000', '0.02241000' ]Método 1
//sum array function Array.prototype.SumArray = function (arr) { var sum = []; if (arr != null && this.length == arr.length) { for (var i = 0; i < arr.length; i++) { sum.push(this[i] + arr[i]);`enter code here` } } return sum; } C = A.SumArray(B); console.log (C)Método 2
var C = A.map(function (num, idx) { return num + B[idx]; });Pero el resultado de la consola es el mismo que se muestra a continuación:
[ '25.80.00387000', '270.00472000', '24.0999999999999980.00534000', '30.0700000000000040.00460000', '34.30.00060000', '34.3000000000000040.00032000', '34.30.00053000', '330.00327000', '29.20.00217000', '29.20.00217000', '27.60.00460000', '28.9999999999999960.00415000', '29.3100000000000020.00852000', '27.0000000000000040.02241000' ]¿Cómo puedo agregar dos matrices para hacer una nueva matriz como esta?
[ '25.80387000', '27.00472000', . . . . . . ]
¿Alguien podría ayudarme a decirme por qué y cómo solucionar esto?
La matriz B consta de cadenas, por lo que para agregarla a los flotadores en la otra matriz, debe analizarla como un flotador.
var C = A.map(function (num, idx) { return num + parseFloat(B[idx]); });Esto se debe a que el tipo de datos de los elementos de la matriz B son cadenas, por lo que la operación '+' concatena dos elementos. debe cambiar el tipo de los elementos en la matriz B a número y luego +los.
var C = A.map(function (num, idx) { return num + parseFloat(B[idx]); });esto debería funcionar analizando la cadena para que flote.
No estoy completamente seguro de entender la pregunta, pero parece que estás usando cadenas y números indistintamente aquí. Cuando se agregan cadenas a números, el resultado es una cadena.
Considere usar el envoltorio Number o el método parseFloat según lo que se adapte a sus necesidades.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat