javascript - 如何更改数组中的每个第二个和第三个元素?

标签 javascript arrays loops

这是我的困境,我有这段代码:

var fibs = [1, 2];
for (i = 0; i < (window.innerWidth / 50); i++) {
    if (fibs.length < 15) {
        var n = fibs[i] + fibs[i + 1];
        fibs.push(n);
    }
}

这将创建一个斐波那契数列数组。然后,我将 fibs 的内容复制到一个新数组 top 。我遇到的问题是,我需要顶部的每个第二个和第三个元素都是 fibs 的反号。 。 IE。 top[0] = fibs[0]; top[1] = -fibs[1]; top[2] = -fibs[2]; top[3] = fibs[3]我希望能够以编程方式执行此操作,因为数组的长度将根据屏幕的宽度而变化。

下面是我正在尝试使用的内容。

var top = [];
for (i = 0; i < fibs.length; i++) {
    if (i % 2 == 0 || i % 3 == 0) {
        top[i] = -(fibs[i]);
    } else {
        top[i] = fibs[i];
    }
}

我得到的是[-1, 2,-3, -5, -8, 13, -21, 34, -55, -89, -144, 233, -377, 610, -987] ,当我要寻找的是 [-1, 2, 3, -5, -8, 13, 21, -34, -55, 89, 144, ... ] 时.

最佳答案

虽然这可能不是最好的方法,但这应该可行:

var topp = [];
for (i = 0; i < fibs.length; i++) {
    if (i % 3 == 1 || i % 3 == 2) {
        topp[i] = fibs[i] - (2 * fibs[i]);
    } else {
        topp[i] = fibs[i];
    }
}

代码非常不言自明。

编辑:

感谢 @alexpods 提供有关 top 关键字的提示。

感谢@Scott Hunter 指出逻辑错误。

关于javascript - 如何更改数组中的每个第二个和第三个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27078668/

相关文章:

javascript - 使用 jquery 复制/克隆脚本标签

javascript - echarts-事件3.1.6

c - 我在一个函数中将值添加到 C 数组中,但在后面的函数中数组仍然为空,这是怎么回事?

java - 循环内的变量

计算导数,给定数据文件

java - 循环终止困惑

javascript - 保护图像不被复制

javascript - 显示重复值

android - 从资源中获取 android 字符串数组中的数据

Java递归-从数组中逆序整数,它是如何工作的?