繁体   English   中英

如何在每次循环迭代中删除数组的前三个索引 - JS

[英]How to remove first three index of array in every loop iteration - JS

我需要在每次循环迭代时打印。 在 C# 中,我可以使用 Console.Write(),但在 JS 中 - 数组。

所以这是我的代码:

let firstNum = +gets();
let secondNum = +gets();
let thirdNum = +gets();
let line = +gets();
let array = [0, 0, 0];

print(firstNum);
print(secondNum, thirdNum);

if (line > 2) {
    for (let i = 3; i <= line; i++) {
        for (let j = 0; j < i; j++) {
            let tempNum = firstNum + secondNum + thirdNum;
            firstNum = secondNum;
            secondNum = thirdNum;
            thirdNum = tempNum;
            array.push(thirdNum);
            array.shift();
        }
        print(array);
    }
}

这是tribonacci,但我的结果需要是:

1

-1 1

1 1 3

5 9 17 31

但是,如果是 4 或更多,我会在没有 shift() 的情况下得到这个结果:

1

-1 1

[ 1, 1, 3 ]

[ 1, 1, 3, 5, 9, 17, 31 ]

当在我的循环中使用 shift() 并将 0, 0 ,0 放在我的数组的开头时,我得到了这个结果:

1 -1 1 [ 1, 1, 3 ] [ 9, 17, 31 ]

在最后一次打印中,我需要 5、9、17、31,但是 shift() 删除了 5。所以它删除了前 4 个索引...

如何在没有前 3 个索引的情况下在每次迭代中打印我的数组?

编辑:

输入是 1 -1 1 4

如何在没有前 3 个索引的情况下在每次迭代中打印我的数组?

假设你的意思是字面意思,这里的第一个结果似乎可以很好地工作: https : //www.google.com/search? q = javascript+print+part+of+ array

它说:

slice() 方法
返回数组中选定的元素,作为新的数组对象...

句法
array.slice(开始,结束)

参数值
开始可选。 一个整数,指定从哪里开始选择...
结束可选。 一个整数,指定结束选择的位置。 如果省略,将选择从开始位置到数组末尾的所有元素...

所以这个语句应该让javascript打印没有前三个索引元素的数组:
console.log(array.slice(3));

我在循环中尝试了一些带有 slice() 和 shift() 的变体,但在每次迭代中它都会删除或多或少的索引。 所以我改变我的想法并在每次打印迭代后清除我的数组:

if (line > 2) {
    for (let i = 3; i <= line; i++) {

        for (let j = 0; j < i; j++) {
            let tempNum = bigInt(firstNum).add(secondNum).add(thirdNum);
            firstNum = secondNum;
            secondNum = thirdNum;
            thirdNum = tempNum;
            array.push(thirdNum)
        }
        print(array.toString().replace(/,/g, ' '));
        array.length = 0;
    }
}

感谢您帮助使用 slice()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM