Walter Purvis
Walter Purvis

Reputation: 25

Add sums of array. Display one output

Update: The answer to this question is bellow. Thanks to dougtesting on a different thread. 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);
}

//End of answer.

I am trying to have a user input 10 numbers. Then add those numbers together and display the output to the user. I was able to get the amount of inputs (10) into a array but I can't get arrays contents. I feel like I'm missing something simple. Would you mind taking a look?

// 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;
// }

Upvotes: 0

Views: 84

Answers (3)

Potato Salad
Potato Salad

Reputation: 4650

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

Is this what you are looking for? You need to put the arr.join() result to a variable, like itself.

You shouldnt be using arr.push() at all if you're not pushing new array items on it

//(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
    }

Upvotes: 0

Soviut
Soviut

Reputation: 91595

This is probably one of the simplest examples of something that Javascript's built in array .reduce() function would be used for. Effectively, you're "reducing an array to a single value".

A reduce works by taking an array and running a function on each item. This "callback" function receives the value that the previous function returns, processes it in some way, then returns a new value. Worth noting, the reduce function also takes a 2nd argument that acts as the initial value that will be passed to the callback function the first time.

array.reduce(callbackFunction, initialValue);

Here's an example of reduce being used to sum an array.

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);

Using ES6 syntax, this can be further simplified to a one-liner

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

Upvotes: 1

Nieminen
Nieminen

Reputation: 1284

In your loop you're referencing arrEquals like for (var a = 0; a < arrEquals; a++){. you need to reference it like for (var a = 0; a < arrEquals.length; a++){ because just referencing the array doesn't tell javascript how long it is, or what number to count to. the .length returns a number, that number is how many items are in the array.

Upvotes: 0

Related Questions