JS - 汇总数组的元素

时间:2014-10-15 10:58:51

标签: javascript operations

我正在尝试使用存储在数组中的数字进行操作,不幸的是它们似乎被视为“文本”而不​​是数字,所以当我喜欢array1 [i] + array2 [i]时,而不是做2 + 3 = 5我会得到2 + 3 = 23 ......

这些数组的值来自字段(html)

不知道如何处理; D 谢谢你的帮助

如果你想查看我的代码,这就是它的样子:

        var polynome = [];
        for (var i=0; i<=degree; ++i) {
            polynome[i] = document.getElementById(i).value;
        }
        var a = document.getElementById("a").value;

        var tempArray = [];
        var quotient = [];

        quotient[degree+1] = 0;

        for (var i=degree; i>=0; --i) {
            tempArray[i] = a * quotient[i+1];
            quotient[i] = polynome[i] + tempArray[i];
        }

        document.getElementById("result").innerHTML = polynome + "<br>" + tempArray + "<br>" + quotient;

2 个答案:

答案 0 :(得分:2)

array1[i]包含字符串而不是int,因此当您使用+运算符尝试这两个元素时,它会连接两个值而不是添加它们

您需要将数组中的两个元素都转换为整数

试试这个

parseInt( array1[i] ) + parseInt( array2[i] )

答案 1 :(得分:0)

+标点符号被重载,可以表示addition,连接和conversion to number。为了确保它被解释为加法,操作数必须是数字。有许多方法可以将字符串转换为数字,因此给出:

var a = '2';
var b = '3';

一元+运算符将转换整数和浮点数,但它有点模糊:

+a + +b 

parseInt 将转换为整数:

parseInt(a, 10) + parseInt(b, 10);

parseFloat 将转换整数和浮点数:

parseFloat(a) + parseFloat(b);

作为函数调用的Number构造函数将转换整数和浮点数并且是语义的:

Number(a) + Number(b);

最后有unary - operator,但很少使用,因为减法(如乘法和除法)将操作数转换为数字并反转符号,所以要添加do:

a - -b