繁体   English   中英

如何在我的函数参数中使对象数组调用每个对象的函数?

[英]How can I make an array of object in my function parameter call a function for each object?

我创建了以下checkGrid函数,该函数先进行计数,然后再进行另外两个参数的处理。 这是一个在selectOption调用中进行硬编码的解决方案,并且不够灵活:

checkGrid = function(expectCount, typeParam, selectParam) {

   it('Check', function () {
      selectOption('examTypeSelect', typeParam).click();
      selectOption('examStatusSelect', selectParam).click();
    });

}
checkGrid(10, '*', '*');

现在,我想使其更加灵活,以便它接受任意数量的selectOption函数的参数。 所以我在想可以这样称呼的东西。 在这里,我需要的是checkGrid函数调用selectOption三次:

checkGrid(10, [{'examTypeSelect','*'}
               {'examStatusSelect', '*'},
               {'abcSelect','29'}]);

我怎样才能接受作为checkGrid的第二个参数的数组对象,并使其根据数组中有多少个元素来调用任意数量的selectOption函数?

通过在数组上循环并使用.apply调用具有可变数量参数的每个函数。

checkGrid = function(expectCount, stuff) {
    it('Check', function () {
        for (var i = 0; i < stuff.length; ++i) {
            selectOption.apply(this, stuff[i]).click();
        }
    });
}

您不会使用建议的语法来调用它(这是无效的),而是

checkGrid(10, [
                ['examTypeSelect','*'],
                ['examStatusSelect', '*'],
                ['abcSelect','29','and','perhaps','more','parameters']
              ]
          );

最后,目前尚不清楚expectCount应该做些什么,但是我把它留在那里了,因为您的原始代码大概可以对它做些什么

暂无
暂无

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

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