如何使用无限参数调用函数

时间:2018-07-13 09:34:34

标签: javascript cpanel

在cPanel UAPI函数store_filter之后,如果存在多个规则或操作,则需要使用迭代的参数调用函数,例如:

  • action1
  • action2
  • action3
  • dest1
  • dest2
  • dest3 等等。

但是我不太了解如何将这个迭代参数传递给函数。

UPD

    $cpanel = new CPANEL(); // Connect to cPanel - only do this once.

// Create a new filter for user@example.com.
$new_filter = $cpanel->uapi(
    'Email', 'store_filter',
    array(
        'filtername'      => 'coffee',
        'account'         => 'user@example.com',
        'action1'         => 'deliver',
        'dest1'           => 'cheesecloth@example.com',
        'part1'           => '$header_subject:',
        'match1'          => 'contains',
        'val1'            => 'curds',
        'opt1'            => 'or',
        'part2'           => '$message_body',
        'match2'          => 'is',
        'val2'            => 'whey',
         )
);

2 个答案:

答案 0 :(得分:2)

恕我直言,您无需执行任何其他操作。 JavaScript随附Arguments aobjectarguments是保留关键字,您可以这样使用:

function unlimitedArgs() {
  console.log(arguments)
}

unlimitedArgs(2,4, 'v1');

unlimitedArgs(2,4, 'v1', [2,4,5], "some other value");

或者,您可以使用spread operator做类似的事情:

function unlimitedArgs(...gatherer) {
  console.log(gatherer)
}

unlimitedArgs(2,4, 'v1');

unlimitedArgs(2,4, 'v1', [2,4,5], "some other value");

注意:如果您使用传播运算符,则容器变量(即gatherer)的类型为Array

答案 1 :(得分:1)

也许这个例子有帮助

function printNames(...names) {
  console.log(`number of arguments: ${names.length}`);
  for (var name of names) {
    console.log(name);
  }
}

printNames('foo', 'bar', 'baz');

无论是什么参数,您都可以传递无限的参数,并使用上述函数访问相同的参数。