我有一个有趣的问题,让我难以理解。非常感谢您的任何帮助。
基本情况如下。我正在编写一个通用脚本文件general.js
,用于大量网页,每个网页都有自己的关联脚本文件pageN.js
。这些pageN
文件中的每一个都包含大量变量t1
,...,tn
,每页的 n 不同。 (通常 n 将在50到100之间。)
在general.js
我有一个" lightswitch"功能:
function onOff(t,binaryDigit){
if ( binaryDigit == 0 ) { // hide graphic element associated with t
}
else { // show graphic element associated with t
}
}
以及将onOff
应用于任意数量的有序对[tk,binaryDigit]
的函数:
function myFunction() {
for (var i = 0; i < arguments.length; i++) {
onOff(arguments[i][0],arguments[i][1])
}
}
由于我经常打电话给myFunction
,而且每次大多数binaryDigits都必须设置为0,我想构建一个helperFunction
,我只需要在其中指定tk
我希望binaryDigit
为1,并将其他二进制数设置为0.因此,例如,如果 n = 50,则调用{{1}应该执行helperFunction(t1,t2,t3)
。
我的问题是:我该怎么做?我对高级JavaScript的经验有限,所以我没有线索,说实话。
答案 0 :(得分:0)
在进一步思考之后(在马桶上)解决了这个问题。我的解决方案是为每个pageN.js
文件生成一个名为variableArray
的数组,该数组本质上是该文件中所有变量的列表。接下来,我在helperFunction
中定义general.js
,如下所示:
var helperFunction = function() {
var argArray = Array.prototype.slice.call(arguments);
var varArray = argArray[argArray.length-1];
var elementsOff = $(varArray).not($(argArray)).get();
for (var i = 0; i < arguments.length; i++) {
onOff(arguments[i],1);
}
for (var i = 0; i < elementsOff.length; i++) {
onOff(elementsOff[i],0);
}
};
函数被调用如下:helperFunction(t1,t2,t3,variableArray)
。