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']
]
);