我想每10个元素增加一个数字。
例如,
function myFunction() {
for (var i = 1; i <= 100; i++)
{
var d = i;
document.getElementById("demo").innerHTML += d+"<br/>";
}
}
输出:
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 ,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49 ,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74 ,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100
但是,我想要这样
1,2,3,4,5,6,7,8,9,10,16,17,18,19,20,21,22,23,24,25,31,32,33,34 ,35,36,37,38,39,40 ....
我想在10号后面加上5,在20号后面加上10,在30号后面加上15,在40号后面加上20,在50号后面加上25。我知道这很简单。但是,我没有任何结果。
答案 0 :(得分:4)
如果index变量的结果可除以10,则可以采用偏移量并将此值增加5。
var i,
offset = 0,
result = [];
for (i = 1; i <= 100; i++) {
result.push(i + offset);
if (i % 10 === 0) offset += 5;
}
console.log(result.join(' '));
答案 1 :(得分:1)
您可以使用模运算符%
来检查当前数字(i
)是否为10的倍数,如果是,则将5加到i
:
if (i % 10 === 0) {
i += 5;
}
此外,我建议您保留要添加到页面上的所有数字的字符串,因为每次循环迭代查询并向DOM中添加内容是一项昂贵的操作,可以避免
请参见以下示例:
function myFunction() {
var resultStr = ""
for (var i = 1; i <= 100; i++) {
resultStr += i + "<br/>";
if (i % 10 === 0) {
i += 5;
}
}
document.getElementById("demo").innerHTML += resultStr;
}
myFunction();
<div id="demo"></div>
答案 2 :(得分:1)
我在第10个元素上使用了一个计数器来说明增量,并将结果简单地放在控制台上。显然,有些只是将数字加5,计数器选项只是设计偏好。
var arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21];
function myFunction(arr){
var counter = 0;
for(var i = 0; i<arr.length; i++){
if (i%10 ==0){
counter++;
}
arr[i] = arr[i]+(5*(counter-1));
}
console.log(arr);
};
myFunction(arr);
答案 3 :(得分:0)
像这样更改功能:
function myFunction() {
for (var i = 1; i <= 100; i++) {
var d = i;
if (i > 1 && i % 10 === 1) {
d = (i % 10) * 5 + i;
}
document.getElementById("demo").innerHTML += d + ",";
}
}
答案 4 :(得分:0)
执行类似的操作:
function myFunction() {
for (var i = 1; i <= 100; i++)
{
var j=Math.floor(i/10);
var x=5*j;
var d = x+i;
document.getElementById("demo").innerHTML += d+"<br/>";
}
}
答案 5 :(得分:0)
扩展Nick Parsons提出的性能问题
var resultStr = ""
for (var i = 1; i <= 100; i++) {
resultStr += i + "<br/>";
if (i % 10 === 0) {
i += 5;
}
}
document.getElementById("demo").innerHTML += resultStr;
innerHTML太慢了。
考虑以下代码,该代码采用了文档片段和香草.append()方法
const fragment = document.createDocumentFragment();
for (var i = 1; i <= 100; i++)
{
if( i % 10 === 0 )
i += 5;
fragment.append( document.createTextNode( i ) );
fragment.append( document.createElement('BR') );
}
document.getElementById('demo').append( fragment );
From my testing,使用文档片段的速度大约快2000(!)。