我是一名学生,正在编写一个JavaScript“for”循环,打印到innerHTML中。字符串的每个串联都添加到最后一个逗号。如何使它在最后一次迭代后不打印逗号?只是为了一点心思,逗号不是作业的一部分,我只是想添加实际的应用程序。请不要jQuery
window.onload = function(){
var mySeven = 0;
var printSeven = document.getElementById('multiples_seven');
for (i=1; i <= 1000; i++){
if (i % 7 == 0){
mySeven += i;
printSeven.innerHTML += i + ',' + ' ';
}
}
};
谢谢!
答案 0 :(得分:6)
您应该使用join()
代替。它更干净,你不需要担心边缘情况:
var printSeven = document.getElementById('multiples_seven');
var sevens = [];
for (i=1; i <= 1000; i++){
if (i % 7 == 0){
sevens.push(i);
}
}
printSeven.innerText = sevens.join(", ");
或者避免if()
语句和不必要的迭代的方法:
var printSeven = document.getElementById('multiples_seven');
var sevens = [];
for (i = 7; i <= 1000; i += 7){
sevens.push(i);
}
printSeven.innerText = sevens.join(", ");
为了便于理解,以下是如何在没有join()
的情况下执行此操作:
var printSeven = document.getElementById('multiples_seven');
var maxValue = 1000;
var list = "";
for (i = 7; i <= maxValue; i += 7){
list += i;
if(i + 7 <= maxValue){
list += ", ";
}
}
printSeven.innerText = list;
答案 1 :(得分:1)
使用此功能:
function reorderData(){
var sevens = Array();
var printSeven = document.getElementById('multiples_seven');
for (i=1; i <= 1000; i++){
if (i % 7 == 0){
sevens.push(i);
}
}
var newDisplaySelectedArray = sevens.join(",");
jQuery( "#multiples_seven" ).val(newDisplaySelectedArray);
}
答案 2 :(得分:0)
首先,最好不要在循环内操作DOM。您应该在字符串或数组中构造输出,然后在单个操作中将其添加到DOM:
window.onload = function () {
var mySeven = '';
var printSeven = document.getElementById('multiples_seven');
for (i=1; i <= 1000; i++){
if (i % 7 == 0){
mySeven += i + ', ';
}
}
printSeven.innerHTML += mySeven;
};
要删除尾随逗号,您有两个选择:首先不要将其添加或在将其添加到DOM之前将其删除。
大多数其他答案都集中在不添加它,这是一个删除它的解决方案:
window.onload = function () {
var mySeven = '';
var printSeven = document.getElementById('multiples_seven');
for (i=1; i <= 1000; i++){
if (i % 7 == 0){
mySeven += i + ', ';
}
}
printSeven.innerHTML += mySeven.slice (0, -2);
};
请注意,如果你的for循环没有执行至少一次迭代,你可以删除你想要显示的字符。在通用情况下,更容易构建数组并使用join
函数,如此处的其他答案所示。
答案 3 :(得分:0)
检查你是否在第一项比在最后一项更容易,所以只需在数字前加上逗号:
window.onload = function(){
var mySeven = 0;
var printSeven = '';
for (i = 1; i <= 1000; i++) {
if (i % 7 == 0){
mySeven += i;
printSeven += (printSeven.length > 0 ? ', ' : '') + i;
}
}
document.getElementById('multiples_seven') += printSeven;
};