简体   繁体   中英

How to apply For-Each Loop on Argument Array in Functions in Java Script

My Code It Does Not Work. I want to Sum of Numbers that the user gives in arguments.

So I use here Argument Object but am unable to fetch what is the mistake.

    // The Argument Object 
function myFunc()
{
    console.log("You give Total Numbers : "+arguments.length);
    let sum = 0;

    console.log("Sum is : ");
    arguments.forEach(element => {
        sum += element;
    });


    console.log(sum);
}

myFunc(10,20);
myFunc(10,20,30);
myFunc(10,20,30,40);

You could try this solution:

/**
 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments
 *
 * @param  {array} args ...args is the rest parameters. It contains all the arguments passed to the function.
 */
function myFunc (...args) {
  console.log(`You give Total Numbers : ${args.length}`);
  /**
   * Reduce is a built-in array method that applies a function against an accumulator and each element
   * in the array (from left to right) to reduce it to a single value.
   *
   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
   */
  const sum = args.reduce((acc, curr) => acc + curr, 0);
  console.log('Sum is :', sum);
};

myFunc(10, 20);
myFunc(10, 20, 30);
myFunc(10, 20, 30, 40);

Output

You give Total Numbers : 2
Sum is : 30
You give Total Numbers : 3
Sum is : 60
You give Total Numbers : 4
Sum is : 100

Try this:

function myFunc(...arguments)
{
    console.log("You give Total Numbers : "+arguments.length);

    console.log("Sum is : ");
     let sum = 0;
    arguments.forEach(element => {
        sum += element;
    });


    console.log(sum);
}

try this:

function myFunc() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
    sum += arguments[i];
}
console.log(
    `
    Total Number : ${arguments.length}
    Sum : ${sum}
    `
);

}

myFunc(10 , 20 , 30 , 40);

out put like this:

Total Number : 4
Sum : 100

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM