javascript - 在 Javascript 中访问多维数组的第 n 个元素时遇到问题
问题描述
我正在引用以下代码,但在访问多维数组的第 n 个元素时遇到了困难。请参阅以下代码以获取最小工作示例,当我希望它返回 1 时,最后一个 console.log 返回“未定义”。
var intervaldefinitions = [
[0, "Unison", "Unison"],
[1, "m2", "minor second"],
[2, "M2", "Major second"],
[3, "m3", "minor third"],
[4, "M3", "Major third"],
[5, "P4", "Perfect fourth"],
[6, "TT", "Tritone"],
[7, "P5", "Perfect Fifth"],
[8, "m6", "minor sixth"],
[9, "M6", "Major sixth"],
[10, "m7", "minor seventh"],
[11, "M7", "Major seventh"],
[12, "Octave", "Octave"]
];
function intervalnametonumber(interval)
{
var i = 0;
for(i = 0; i < 13; i++)
{
if(intervaldefinitions[i][2] === interval)
var intervalnumber = intervaldefinitions[i][0];
return intervalnumber;
}
}
console.log(intervalnametonumber("Unison"))
//Returns 0
console.log(intervalnametonumber("minor second"))
//Returns undefined, whereas I would expect it to return 1
解决方案
问题是,您在第一个循环中返回早期,但您只需要返回找到的值。
function intervalnametonumber(interval) {
var i = 0;
for (i = 0; i < 13; i++) {
if (intervaldefinitions[i][2] === interval)
return intervaldefinitions[i][0];
}
}
var intervaldefinitions = [[0, "Unison", "Unison"], [1, "m2", "minor second"], [2, "M2", "Major second"], [3, "m3", "minor third"], [4, "M3", "Major third"], [5, "P4", "Perfect fourth"], [6, "TT", "Tritone"], [7, "P5", "Perfect Fifth"], [8, "m6", "minor sixth"], [9, "M6", "Major sixth"], [10, "m7", "minor seventh"], [11, "M7", "Major seventh"], [12, "Octave", "Octave"]];
console.log(intervalnametonumber("Unison"));
console.log(intervalnametonumber("minor second"));
推荐阅读
- powerbi - PowerBI Dax 从许多其他表创建汇总表
- c# - IEnumerable收益率返回函数与excel
- java - 使用树递归的Java函数问题
- python - Python 从搜索结果中抓取数据
- python-3.x - 尝试显示简单的空图像时出现 Python Wand 错误:“此图像格式没有编码委托”
- javascript - 我无法使用 JavaScript Ajax 发布数据
- c# - 如何在 Blazor 中调用带参数的函数?
- c# - 在 mvc 核心的 Hangfire 仪表板中将 Cron 表达式显示为文本
- events - 是否可以在同一代码中使用 on_message 和 @client.command?
- php - 使用未定义的常量 JSON_INVALID_UTF8_SUBSTITUTE - 假定为“JSON_INVALID_UTF8_SUBSTITUTE”