这可能不是一个好问题,但它确实有道理(至少对我来说是这样。)
假设我有一个名为 temporaryFrequency
的多维数组。现在,我想编写一个接受一个参数的函数 --> frequencyArray[number]
。这从代码中会更清楚:
JS:
function getMaxTemporaryFrequency(frequencyArray[number]){
var maxOutofThese = frequencyArray[number][0];
for(var i = 0; i < frequencyArray[number].length; i++){
if(frequencyArray[number][i] > maxOutofThese)
maxOutofThese = frequencyArray[number][i];
}
return maxOutofThese;
}
此函数将从数组的子数组中返回最大频率。现在,我将执行以下代码来调用该函数:
//This is to get the max out of the temporary frequencies
for(var n = 0; n < temporaryFrequency.length; n++){
var maximumTempFrequency + (n + 1) = getMaxTemporaryFrequency(temporaryFrequency[n]);
}
现在,我还有一个问题与此相关。变量名称可以连接起来吗,就像这里做的那样?例如,对于每个循环计数,我想创建变量:maximumTempFrequency1
、maximumTempFrequency2
、maximumTempFrequency3
等等。
现在,此函数调用将 temporaryFrequency
数组的第 n 个元素传递给函数,函数应返回第 n 个子数组的最大值。但是,那是行不通的。
所以,总结一下我的问题:
1) Can we pass an array with a key to function, like I did here? If no, is there any way to do it?
2) Can we concatenate strings to make a variable name, like I did in the 'for' loop? If no, is there any other method
*注意:对于本题,观众不需要知道temporaryFrequency
数组的内容。
最佳答案
你的两个问题的直接答案是否定的。
语法 function getMaxTemporaryFrequency(frequencyArray[number]) { ... }
无效。解析器需要参数名称的标识符,标识符中不能有方括号 [
或 ]
。这导致错误:
Uncaught SyntaxError: Unexpected token [
同样,您的变量名在语法上也是无效的。 var maximumTempFrequency + (n + 1) =//anything
结果
Uncaught SyntaxError: Unexpected token +
要回答有关如何使其工作的后续问题,对于第一个问题,您可以在调用函数时(而不是在声明它时)将取消引用的数组成员传递给函数。
var frequencyArray = []; // fill it with your values
var number = 0; // or whatever number you want
function getMaxTemporaryFrequency(arr){
var maxOutofThese = arr[0];
for(var i = 0; i < arr.length; i++){
if(arr[i] > maxOutofThese)
maxOutofThese = arr[i];
}
return maxOutofThese;
}
function getMaxTemporaryFrequency(frequencyArray[number]);
对于后一种,您希望将结果存储到一个数组中,如下所示:
//This is to get the max out of the temporary frequencies
var maximumTempFrequency = [];
for(var n = 0; n < temporaryFrequency.length; n++){
maximumTempFrequency[n+1] = getMaxTemporaryFrequency(temporaryFrequency[n]);
}
请注意,您的语法 getMaxTemporaryFrequency(temporaryFrequency[n])
是我放在上面第一个代码块中的示例。
关于javascript - 如何将带有键的数组传递给函数的参数? (使用多维数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33699666/