Multiplyall() 与参数 object 和 object.Values()

问题描述 投票:0回答:1

enter image description here[在此处输入图像描述][2]任务是创建一个函数,将传递给该函数的所有参数相乘。这些参数的数量各不相同且未知。应该使用参数对象和静态函数 Object.values()

As you can see i tried something but it only multiplies the first two parameters. In addition I dont really understand why the console.log(arguments.lenght) is 5 when i clearly only have 4 parameters in the Multiplyall function. . enter image description here

javascript object arguments
1个回答
0
投票

不要使用

while
,使用
for
语句。请阅读此处的差异:for 语句 / while 语句。相应的函数将如下所示:

function multiplyAll_v1() {
    let res = 1;
    if ( arguments.length < 1 ) {
        return 0;
    }
    for( let i = 0; i < arguments.length; i++ ) {
        res *= arguments[i];
    }
    return res;
}

您当然也可以使用该函数的 restparameter 语法。相应的函数将如下所示:

function multiplyAll_v2( ...args ) {
    let res = 1;
    if ( args.length < 1 ) {
        return 0;
    }
    for ( let arg of args ) {
        res *= arg;
    }
    return res;
}

最后,这是一个包含两种变体的工作示例:

function multiplyAll_v1() {
    let res = 1;
    if ( arguments.length < 1 ) {
        return 0;
    }
    for( let i = 0; i < arguments.length; i++ ) {
        res *= arguments[i];
    }
    return res;
}

function multiplyAll_v2( ...args ) {
    let res = 1;
    if ( args.length < 1 ) {
        return 0;
    }
    for ( let arg of args ) {
        res *= arg;
    }
    return res;
}

console.log( multiplyAll_v1( 2, 3, 6 ), multiplyAll_v2( 2, 3, 6 ) );

document.getElementById( 'v1' ).innerHTML = "Result v1: " + multiplyAll_v1( 2, 3, 6 );
document.getElementById( 'v2' ).innerHTML = "Result v2: " + multiplyAll_v2( 2, 3, 6 );
INPUT: 2, 3, 6
<p id="v1"></p>
<p id="v2"></p>

© www.soinside.com 2019 - 2024. All rights reserved.