javascript - 如何避免跳过第二个数组中的数组索引?

标签 javascript arrays loops switch-statement

如何不跳过年度数组的元素?

我想要的结果是:

Banana
0
Mango
1

当前结果:

Banana
0
Mango
3

代码在这里:

<body>
<p id="demo"></p>
<script>
    var fruits, text, year, i;
    fruits = ["Banana", "Orange", "Apple", "Mango"];
    year = ["0", "1", "2", "3"];
    text = "<ul>";
    for (i = 0; i < fruits.length; i++) {
        switch (fruits[i]) {
            case 'Mango':
                text += "<li>" + fruits[i] + "</li>";
                text += "<li><b>" + year[i] + "</b></li>";
                break;
            case 'Pine apple':
                text += "<li>" + fruits[i] + "</li>";
                text += "<li><b>" + year[i] + "</b></li>";
                break;
            case 'Grape':
                text += "<li>" + fruits[i] + "</li>";
                text += "<li><b>" + year[i] + "</b></li>";
                break;
            case 'Banana':
                text += "<li>" + fruits[i] + "</li>";
                text += "<li><b>" + year[i] + "</b></li>";
                break;
        }
    }
    text += "</ul>";
    document.getElementById("demo").innerHTML = text;
</script>

最佳答案

像您一样循环遍历数组,并在水果与其中一个 case 语句匹配时递增第二个计数器。使用计数器从数组中获取年份:

var fruits, text, year, i;
fruits = ["Banana", "Orange", "Apple", "Mango"];
year = ["0", "1", "2", "3"];
text = "<ul>";
let counter = 0; // <-- define a second counter
for (i = 0; i < fruits.length; i++) {
  switch (fruits[i]) {
    case 'Mango':
      text += "<li>" + fruits[i] + "</li>";
      text += "<li><b>" + year[counter] + "</b></li>";
      counter++; // <-- that only get's incremented when a case is matched
      break;
    case 'Pine apple':
      text += "<li>" + fruits[i] + "</li>";
      text += "<li><b>" + year[counter] + "</b></li>";
      counter++;
      break;
    case 'Grape':
      text += "<li>" + fruits[i] + "</li>";
      text += "<li><b>" + year[counter] + "</b></li>";
      counter++;
      break;
    case 'Banana':
      text += "<li>" + fruits[i] + "</li>";
      text += "<li><b>" + year[counter] + "</b></li>";
      counter++;
      break;
  }
}
text += "</ul>";
document.getElementById("demo").innerHTML = text;
<p id="demo"></p>

关于javascript - 如何避免跳过第二个数组中的数组索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52447983/

相关文章:

javascript - 检查 li 列表中的每个类并删除所有其他类

java - Java中的UDP线程无限循环

javascript - Controller 完成参数加载后如何以 Angular 加载模板?

PHP - 检查数组中的重复项并更新循环中的重复值

javascript - 在 Javascript 中将键值推送到 json 数组

python - 精度损失 numpy - mpmath

python - 列表理解中的嵌套循环

java - 使用 jZebra 在同一张收据上打印 HTML 和 PostScript

javascript - 获取围绕音频按钮的链接

javascript - JSON.Parse 在 Faker.js 中将字符串解析为 JSOn 时在位置 0 处显示错误