javascript - 遍历不规则行长的矩阵
问题描述
我有一个矩阵,其中行不一定具有相同的长度:
以下是 solfege 格式的音乐标记。
const notes = [
[ 'do5', 'mi5' ],
[ 'mi6', 'so6', 'ti6', 're7' ],
[ 'so7', 'ti7', 're8', 'fa8' ],
[ 'la3', 'do4', 'mi4' ],
[ 'fa2', 'la2' ],
[ 're2' ],
[ 'ti1', 're2', 'fa2' ]
];
我有一个函数可以将这些标记转换为等效的字母标记(例如:fa2 将使用我的函数转换为 F2)。
我希望能够迭代这个矩阵,并返回转换后的矩阵,它应该保留相同的维度。
谢谢,纳库尔
解决方案
这可能是您想要的:
const notes = [
[ 'do5', 'mi5' ],
[ 'mi6', 'so6', 'ti6', 're7' ],
[ 'so7', 'ti7', 're8', 'fa8' ],
[ 'la3', 'do4', 'mi4' ],
[ 'fa2', 'la2' ],
[ 're2' ],
[ 'ti1', 're2', 'fa2' ]
];
// replace this function with your own converter
function convert(note) {
return note.toUpperCase();
}
for (let i = 0; i < notes.length; i++) { // for each row
// map will iterate through the row, converting each note
notes[i] = notes[i].map(convert);
}
该部分map(convert)
只是map(note => convert(note))
.
这不是很有效,因为map()
将为每一行创建一个新数组,但在您的情况下,代码的可读性而不是性能可能更重要,所以这很好。
推荐阅读
- javascript - 无法设置属性 'innerHTML' of null ///// from origin 'null' 已被 CORS 策略阻止:
- ruby-on-rails - rails 6中有许多默认路线?
- boto3 - 在 aiobotocore 响应 ['Body'].read(...) 上看到挂起(没有超时)
- c - 使用指针函数对结构的成员进行排序
- batch-file - 如何使用循环密码制作批处理文件?
- android - 在 Google Play 商店更新后,Android 应用程序将无法打开。有关如何调试的任何提示?
- reactjs - ReactDOM.render 但使用一个类
- assembly - 查找二进制代码的类型和汇编语言
- c# - 即使具有管理员权限也无法读取/写入 HKLM 注册表项和值
- python - 使用相互矛盾的命令将值从“真”更改为“假”