我如何总结所有数组参数

时间:2017-04-27 12:20:41

标签: javascript html

我想要一个带有一个输入框和两个按钮的网页。第一个按钮用于将输入框值添加到我的数组,第二个按钮用于汇总所有数组值。但它返回0 :(

<input type="text" placeholder="Enter number" id="input">
<button id="add">Add to Array</button>
<button id="sum">Sum All</button>
<p id="text"></p>
<script>
    var myArr = [];  //contain numbers that i've inputed
    var input = document.getElementById('input');
    var addBtn = document.getElementById('add');
    var sumBtn = document.getElementById('sum');
    addBtn.onclick = function () {
            myArr.push(input.value);
            input.value = "";
        }
    function sumAll() {
        var i , sum = 0;
        for ( i in myArr.length ) {
            sum += i;
        }
        return sum;
    }
    sumBtn.onclick = function(){
        var paragraph = document.getElementById('text');
        var a = sumAll();
        paragraph.innerHTML = a;
    }
</script>

3 个答案:

答案 0 :(得分:1)

您可以使用for-of语法循环遍历数组。

function sumAll() {
    var i , sum = 0;
    for ( i of myArr ) {
        sum += Number(i);
    }
    return sum;
}

答案 1 :(得分:0)

您需要正确运行for循环: 当你说for ( i in myArr.length ) {时,i的值出现为未定义,因此总和不会发生。你应该使用调试来解决这些问题。

function sumAll() {
            var i, sum = 0;
            for (i = 0; i < myArr.length;i++) {
                sum += +myArr[i];
            }
            return sum;
        }

注意使用一元运算符+的+myArr[i];。这可以尝试将输入字段中的字符串转换为数字(int和float)。 https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Expressions_and_Operators#Arithmetic_operators

答案 2 :(得分:-1)

这应该是要走的路.. 1.您必须使用parseInt将值视为整数 2.正确覆盖数组

<script>
        var myArr = [];  //contain numbers that i've inputed
        var input = document.getElementById('input');
        var addBtn = document.getElementById('add');
        var sumBtn = document.getElementById('sum');
        addBtn.onclick = function () {
                myArr.push(input.value);
                input.value = "";
            }
        function sumAll() {
              var i , sum = 0;
            for ( i in myArr ) {
                sum += parseInt(myArr[i]);
            }
            return sum;
        }
        sumBtn.onclick = function(){
            var paragraph = document.getElementById('text');
            var a = sumAll();
            paragraph.innerHTML = a;
        }
    </script>