javascript - 从 for 循环内部向数组添加元素

标签 javascript arrays for-loop

在下面的 for 循环中,我有 arr[i] = x * i; 我基本上是在尝试获取数字的倍数。我现在的代码的结果是 [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] 我不想要数组的第一个元素为 0 ..

var n = 10;
    var arr = [];
    var x = 2;
    for(var i = 0; i < n; i++ ){
        //arr[0] = x;
        arr[i] = x * i;
        // arr.push(x += x)
    }
    console.log(arr)

我希望能够执行 arr[0] 并查看 x。在这种情况下,它将是 2(倍数的数字......我不知道数学单词)[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

我知道问题在于 2 * 0 等于 0,所以 arr[0] = 0。使第一个元素成为第二个循环的最佳方法是什么。我在考虑做一个 if 语句。或使用对数组开头进行切片的数组方法。我希望有更简单的方法,比如更改 for 循环。

最佳答案

有两种简单的方法可以解决这个问题

  1. 改变循环起始值

    var arr = [],
        x = 2,
        n = 10;
    for (var i = 1; i <= n; i++) {    // Start with `1`
        arr.push(x * i);
    }
    
  2. 或者,乘以i的下一个值,

    var arr = [],
        x = 2,
        n = 10;
    for (var i = 0; i < n; i++) {
        arr.push(x * (i + 1));        // Multiply with i + 1
    }
    

If you still want to solve it with array index assignment , 然后用 Array.prototype.slice 删除第一个元素创建整个数组后,像这样

var n = 10,
    arr = [],
    x = 2;

for (var i = 0; i <= n; i++) {    // Note the limits, 0 to <= n
    arr[i] = x * i;
}

console.log(arr);
// [ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 ]

arr = arr.slice(1);

console.log(arr);
// [ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 ]

关于javascript - 从 for 循环内部向数组添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30473374/

相关文章:

javascript - 使用javascript删除数组元素

php - 如何有效地从数组中获取特定值?

for-loop - 在Go中循环 slice 以创建 map

c - 如何使用不带数组的 for 循环编写在 c 中打印特定数字螺旋图案的代码

javascript - 如何在 python(Django) 中获取 csrf_token

javascript - 刷新页面时Angular js给出404错误

javascript - 练习 Javascript 的最佳环境

javascript - 删除数组中特定对象内的 JavaScript 属性

javascript - jQuery 在设置插件选项之前添加变量

arrays - 如何在多个数组上创建可变循环迭代器