JavaScript:如何使用`forEach`或`for`循环返回修改后的函数?

时间:2018-08-28 15:21:47

标签: javascript arrays for-loop foreach siesta

我的属性名称为items:,它正在等待array列表。 该代码块的正常运行示例如下:

// This usage works perfectly with `getFirstTest()` function
// And creates a list of Array fine!
harness.start(
    {
        group: 'UI Tests',
        testClass: Siesta.Test.ListClass,
        items: [
            {
              group: 'First Group',
              items: [
                  getFirstTest('Foo'),
                  getFirstTest('Bar'),
                  getFirstTest('Alpha'),
                  getFirstTest('Beta'),
                  getFirstTest('Zet')
              ]
            }
        ]
    }
);

但是您会注意到有很多迭代语句,因此我尝试使用forEachfor循环将getFirstTest()函数声明为动态,但是我无法呈现array列表,上面没有问题,但是无法创建列表!

我还需要在parameters函数上设置多个getFirstTest

例如:getFirstTest('Foo', 'SecondParam')

harness.start(
    {
        group: 'UI Tests',
        testClass: Siesta.Test.ListClass,
        items: [
            {
              group: 'First Group',
              items: this.firstGrpSubmodules
            }
        ]
    }
);

function firstGrpSubmodules () {
    let implementedCases = [
        'Foo', 'Bar', 'Alpha', 'Beta', 'Zet'
    ];

    // I've tried several ways to achive but couldn't
    // Usage 1: The for loop
    // for (let i=0; i<implementedCases.length; i++) {
    //       let submodules = implementedCases[i];
    //
    //       getFirstTest(submodules);
    // }

    // Usage 2: forEach
    // implementedCases.forEach(function(submodule) {
    //     getFirstTest(submodule);
    // });
}

我在这里缺少什么,如何实现第二实施? 预先感谢!

1 个答案:

答案 0 :(得分:4)

使用Array.prototype.map

harness.start({
  group: 'UI Tests',
  testClass: Siesta.Test.ListClass,
  items: [
    {
      group: 'First Group',
      items: ['Foo', 'Bar'].map(getSalesTest),
    }
  ]
});