gpt4 book ai didi

javascript - javascript中的数组循环

转载 作者:行者123 更新时间:2023-11-30 09:40:40 24 4
gpt4 key购买 nike

我尝试开发一个简单的程序,打印 1 到 100 之间的所有数字除以 3 没有任何残差并计算总和

我是用 f​​or 循环做的:

var sum = 0;
for (var i = 3; i <= 100; i = i + 3) {
document.write("<br/>" + i);
sum = sum + i;
}
document.write("<br/>sum = " + sum); //1683

但是当我想用数组来做的时候我失败了:

var numbers = [];
var sum = 0;
for (var i = 0; i <= 100; i = i + 3) {
numbers[i - 1] = i;
}

for (var index = 0; index < 100; index++) {
document.write("<br/>" + numbers[index]);
sum = sum + i;
}

document.write("<br/>sum = " + sum);

最佳答案

像这样使用它,

数组索引应该从0开始,所以我引入了另一个变量j=0

var numbers = [];
var sum = 0;
for (var i = 0, j = 0; i <= 100; i = i + 3, ++j) {
numbers[j] = i;
}

更新

第一期:在您的代码中,即。在你的代码下面,

for (var i = 0; i <= 100; i = i + 3) {
numbers[i - 1] = i;
}

在第一次迭代中,

i = 0;
numbers[0-1] = i // i.e numbers[-1] = 0;

在你的第二个循环中,你从 0 开始索引

for (var index = 0; index < 100; index++) {

第二期:

此外,如果您不使用顺序计数器来填充数组,您将以 undefined 值结束那些您没有填充的值。

enter image description here

如果您注意到,循环后的输出显示 numbers.length = 99,这是错误的,它不会包含那么多项目。

第三期:

在下面的代码中,即使你引入了顺序计数器,这仍然是错误的

for (var i = 0; i <= 100; i = i + 3) {
numbers[i - 1] = i;
}

因为 i 应该以 3 而不是 0 开头,否则你将在数组中得到 34 个元素,因为 numbers[0] 将为 0;

第四期:

在这段代码中,

for (var index = 0; index < 100; index++) {
document.write("<br/>" + numbers[index]);
sum = sum + i;
}

你实际上不必循环到 100,你已经填充了数字数组,所以你只需要使用 numbers.length,就像这样

var len = numbers.length;
for (var index = 0; index < len; index++) {
document.write("<br/>" + numbers[index]);
sum = sum + i;
}

一种更好的方式来写这个

var numbers = [];
for (var i = 3, j=0; i <= 100; i = i + 3, j++) {
numbers[j] = i;
}

var sum = numbers.reduce((a, b) => a+b);
console.log(sum);

var sum = numbers.reduce((a, b) => a+b); 使用 Array.reduce()方法。

关于javascript - javascript中的数组循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41296674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com