【发布时间】:2019-08-19 17:24:42
【问题描述】:
我正在尝试遍历嵌套数组以确定数组中的元素是“开放”还是“高级”:
function openOrSenior(data) {
for (let i = 0; i <= data.length; i++) {
let dataElement = data[i];
for (let j = 0; j <= dataElement.length; j++) {
if (dataElement[0] >= 55 && dataElement[1] > 7) {
return ["Senior"];
}
return ["Open"];
}
}
}
给定
的输入[[18, 20],[45, 2],[61, 12],[37, 6],[21, 21],[78, 9]]
函数应该输出
["Open", "Open", "Senior", "Open", "Open", "Senior"]
但目前它看起来只是循环遍历主数组中的第一个元素 ([18, 20]),因为我的函数只返回:
["Open"]
为什么此函数无法继续循环遍历其他嵌套数组并返回“Open”或“Senior”?可能是范围有问题?
https://www.codewars.com/kata/categorize-new-member/train/javascript
我试图实现我发现的 here,它建议在 for 循环中使用 for 循环。
【问题讨论】:
-
为什么需要第二个循环?
dataElement中只有两个元素,而且您按索引提及它们,那么为什么要使用第二个循环? -
哦,是的,没错 - 删除第二个 for 循环仍会返回,
[Open]。
标签: javascript arrays scope