添加数组的总和。显示一个输出

时间:2017-08-16 03:49:54

标签: javascript arrays

更新:这个问题的答案如下。感谢dougtesting在另一个线程上。 add array together, display sum

function hello() {
    var arr = [];

    for (var i = 0; i < 10; i++) {
        arr.push(prompt('Enter number' + (i+1)));
    }

    var total = 0;

    for(i=0; i<arr.length; i++) {
        var number = parseInt(arr[i], 10);
        total += number;
    }

    console.log(total);
}

//答案结束。

我试图让用户输入10个数字。然后将这些数字加在一起并将输出显示给用户。我能够将输入(10)的数量输入到数组中,但是我无法获得数组内容。我觉得我错过了一些简单的事情。你介意看看吗?

// https://stackoverflow.com/questions/28252888/javascript-how-to-save-prompt-input-into-array
var arr = [];                               // define our array

for (var i = 0; i < 10; i++) {              // loop 10 times
  arr.push(prompt('Enter number' + (i+1))); // push the value into the array
}

alert('Full array: ' + arr.join(', '));    // alert the result

var arrEquals = []; //Empty Arr
 arrEquals = arr.push(); //turn string into var

alert (arrEquals);//show string to admin for debug

//(for loop) console out # of  array elements. does not output what is in array
//this is half the battle  
    for (var a = 0; a < arrEquals; a++){
         var a = Number(a); //ensure input is Number()
           console.log(a + "A"); //used for debug
    }


//taks sums in array and adds them together
//this is the other half of the problem
// https://www.w3schools.com/jsref/jsref_forEach.asp   
// var sum = 0;
// var numbers = [65, 44, 12, 4];

// function myFunction(item) {
//     sum += item;
//     demo.innerHTML = sum;
// }

3 个答案:

答案 0 :(得分:1)

这可能是Javascript在数组.reduce()函数中内置的最简单的例子之一。实际上,您“将数组缩减为单个值”。

通过获取数组并在每个项目上运行函数来实现reduce。这个“回调”函数接收上一个函数返回的值,以某种方式处理它,然后返回一个新值。值得注意的是,reduce函数还接受第二个参数,该参数充当将在第一次传递给回调函数的初始值。

array.reduce(callbackFunction, initialValue);

以下是用于对数组求和的reduce的示例。

var result = [1,2,3,4,5,6,7,8,9,10].reduce(function(accumulator, currentValue) {
  return accumulator + currentValue;
}, 0); // start with an initial value of 0
console.log(result);

使用ES6语法,可以进一步简化为单行

var result = [1,2,3,4,5,6,7,8,9,10].reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(result);

答案 1 :(得分:0)

var arr = [];                               // define our array

for (var i = 0; i < 10; i++) {              // loop 10 times
  arr.push(prompt('Enter number' + (i+1))); // push the value into the array
}

arr = arr.join(', ');
alert('Full array: ' + arr);    // alert the result

var arrEquals = []; //Empty array
 arrEquals.push(arr); //assign arr string to an empty array

alert (arrEquals[0]); //show array[0] string to admin for debug

这是你在找什么?您需要将arr.join()结果放入变量,就像它本身一样。

如果您没有在其上推送新的数组项,则根本不应该使用arr.push()

//(for loop) console out # of  array elements. does not output what is in array
//this is half the battle  
    for (var a = 0; a < arrEquals.length; a++){
          //a is always a int in this case
           console.log(a + "A"); //used for debug
    }

答案 2 :(得分:0)

在你的循环中,你引用了像for (var a = 0; a < arrEquals; a++){这样的arrEquals。你需要像for (var a = 0; a < arrEquals.length; a++){那样引用它,因为只引用数组并不会告诉javascript它有多长,或者要计算的数量。 .length返回一个数字,该数字是数组中的项目数。