繁体   English   中英

如何在 Java 脚本中的函数中的参数数组上应用 For-Each 循环

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

我的代码不起作用。 我想对用户在 arguments 中给出的数字求和。

所以我在这里使用参数 Object 但我无法获取错误是什么。

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

你可以试试这个解决方案:

/**
 * 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

尝试这个:

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

尝试这个:

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

像这样输出:

Total Number : 4
Sum : 100

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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