![](/img/trans.png)
[英]How do I remove "undefined" from the first iteration in my for loop of an array?
[英]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.