Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使函数参数中的对象数组为每个对象调用函数?_Javascript - Fatal编程技术网

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

Javascript 如何使函数参数中的对象数组为每个对象调用函数?,javascript,Javascript,我创建了下面的checkGrid函数,它接受一个计数和另外两个参数。这是一种在selectOption调用中硬编码的解决方案,但不太灵活: checkGrid = function(expectCount, typeParam, selectParam) { it('Check', function () { selectOption('examTypeSelect', typeParam).click(); selectOption('examStatusSel

我创建了下面的
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第二个参数的数组对象并使其调用任意数量的
选择option
函数取决于数组中有多少元素?

方法是在数组上使用循环,并使用可变数量的参数调用每个函数

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

最后,还不清楚
expectCount
应该做什么,但我把它放在那里了,因为您的原始代码可能对它做了一些事情。

当然,您会将数组作为参数接收,并使用
for
循环……但您的对象语法无效。虽然基于,但您已经知道正确的对象初始值设定项语法,所以我不确定您为什么不在这个问题中使用它。@cookiemonster:我不会在
selectOption
的主体中更改
this
的值。谢谢。我不知道申请的必要性。就我调用的语法而言。作为调用函数的方法,该语法是否正确。是的,你说得对。这是需要的,但我没有包括代码,所以我可以使它成为一个更简单的问题。谢谢你,我错了,虽然正确的
this
实际上是默认值,因为原始代码没有通过附带的
this
@SamanthaJ:
{'examTypeSelect','*}
等语法不正确,句号。@SamanthaJ:你应该知道你并不真的需要
.apply()
在这里做你想做的事,只要您知道每个调用将有2个参数<代码>选择选项(填充[0],填充[1])。此外,您不需要数组(或对象)数组。您可以传递任意数量的对象
checkGrid
,然后从索引
1
开始循环
参数
对象。通过这种方式,您将使用
checkGrid
作为一个可变函数,这意味着它接收的参数数量是在调用时确定的。
checkGrid(10, [
                ['examTypeSelect','*'],
                ['examStatusSelect', '*'],
                ['abcSelect','29','and','perhaps','more','parameters']
              ]
          );