args.slice(1)如何分离传递给PhantomJS和forEach的参数(函数(arg,i)...函数工作?

时间:2015-09-28 03:58:34

标签: javascript foreach phantomjs slice

通过以下示例阅读书籍:

var system = require('system'),

args = system.args;

console.log('script name is: ' + args[0]);

if (args.length > 1) {
    var restArgs = args.slice(1);
    restArgs.forEach(function(arg, i) {
        console.log('[' + (i + 1) + '] ' + arg);
    });
} else {
    console.log('No arguments were passed.');
}
phantom.exit();

我确实在google上搜索了切片功能。 但是我很困惑为什么slice(1)在这里可以分开args。 在网上搜索并说切片通常有2个args(arg1,可选的args2)

slice(1)如何在restArgs中存储? 另外.forEach(function(arg,i)...)在这里是如何工作的?

1 个答案:

答案 0 :(得分:1)

切片

正如您所说,这里是slice语法:

arr.slice([begin[, end]])

因为结束参数是可选的,所以对slice(1) 的调用只会产生没有第一个arg的原始参数。


的forEach

以下是forEach语法:

arr.forEach(callback[, thisArg])

这基本上是数组中每个元素的for循环。

如果我们查看MDN documentation,我们会看到回调函数有三个参数:

  1. CurrentValue的
  2. 索引
  3. 阵列
  4. 您的代码使用restArgs.forEach(function (arg, i)执行的操作是循环其余参数的每个元素并拉出每个元素。在此回调函数的主体中,您可以引用当前arg本身(带有arg)和该arg的当前索引(带i)。