循环以打印用逗号分隔的迭代,末尾不带逗号
Loop to print iterations separated with a comma, with no comma at the end
我是一名学生,正在编写一个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 + ',' + ' ';
}
}
};
谢谢!
您应该使用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;
使用此函数:
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);
}
首先最好不要在循环中操作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
函数更容易,如这里的其他答案所示。
检查您是否在第一项比检查您是否位于最后一项更容易,所以只需在数字前添加逗号:
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;
};
相关文章:
- 如何在javascript中迭代数字列表
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 如何迭代Array.prototype函数
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 在ejs-partial中对JSON对象进行迭代
- 如何在DataTables 2.1中迭代对象数组
- 使用递归属性迭代保留属性结构
- 正在停止.在jquery中的特定时间间隔内,每次迭代的每次执行
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- 主干-从模板中迭代的集合中获取特定的模型
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 什么's是在javascript中迭代项的最佳方式
- 为什么这只是迭代 HTMLCollection 的奇怪元素
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- Babel编译错误:找不到模块核心js/library/fn/get迭代器
- 在es6中,将带有回调的事件侦听器设置为可迭代的
- jQuery-迭代不正确?(太长,无法执行)
- 每个$.,循环获胜't逐个迭代HTML元素
- 循环以打印用逗号分隔的迭代,末尾不带逗号
- 如何迭代javascript行分隔的字符串,检查分号分隔的第一个值,并在值相等的地方连接行