首页 > 解决方案 > For循环和数组的一些数学问题

问题描述

var test = [
"test1",
"test2",
"test3",
"test4"
];
var text = "";
for (var i = 0; i < test.length; i++) {
if (i == test.length) {
    text += test[i] + ". Fin";
    } else {
    text += test[i] + "<br>";
    }
 }

在这段代码中,我基本上尝试创建一个列表,结果是:test1 test2 test3 test4。鳍

一切正常,除了 . 鳍。我相信这是因为我没有正确获得数字或类似的东西。

编辑:愚蠢的问题,当我还是初学者时,代码混乱。这Array.join()在一行内帮助了我,通过在后缀中添加一个字符串来结束它。

标签: javascriptarraysfor-loop

解决方案


这是你的问题(见评论):

for (var i = 0; i < test.length; i++) { // We only execute the code when i < length
  if (i == test.length) {               // But here, you try to add something when it's = !
    text += test[i] + ". Fin";
  } else {
    text += test[i] + "<br>";
  }
}

如果你想让它工作并且需要使用你的for循环,这里有两种不同的解决方案:

var test = ["test1", "test2", "test3", "test4"];

// First solution: Modify your loop
var text = "";
for (var i = 0; i <= test.length; i++) { // Modified < to <=
  if (i == test.length) {
    text += ". Fin"; // Removed "test[i]", because it doesn't exist when i == length
  } else {
    text += test[i] + "<br>";
  }
}
console.log(text);

// Another shorter solution: Add ". Fin" AFTER the loop
var text = "";
for (var i = 0; i < test.length; i++){
  text += test[i] + "<br>";
}
text += ". Fin";
console.log(text);

⋅ ⋅ ⋅</p>

无论如何,如果您不需要for循环,
还有另一个更简单的解决方案.join()

var test = [
  "test1",
  "test2",
  "test3",
  "test4"
];

var text = test.join('<br>') + '<br>. Fin';
console.log(text);

希望能帮助到你。


推荐阅读