javascript - 如何将带有键的数组传递给函数的参数? (使用多维数组)

标签 javascript arrays

这可能不是一个好问题,但它确实有道理(至少对我来说是这样。) 假设我有一个名为 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]);
    }

现在,我还有一个问题与此相关。变量名称可以连接起来吗,就像这里做的那样?例如,对于每个循环计数,我想创建变量:maximumTempFrequency1maximumTempFrequency2maximumTempFrequency3 等等。

现在,此函数调用将 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/

相关文章:

ruby-on-rails - rails jbuilder : how to build a JSON from an array with the key equals to the array values

arrays - Powershell 比较数组元素

Javascript - 数组连接到另一个

javascript - 合并多个替换文本

javascript - jQuery 检查 CSS 颜色值不工作

javascript - 完全删除 CSS 属性

c++ - 哪个最快? boost::multi_array 还是 std::vector?

javascript - 双感叹号 (!!) 在 JavaScript 中如何工作?

javascript - jQuery 数据表排序问题

c++ - 对二维字符数组的行求和