我需要在每次循环迭代中打印。在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
但是如果 line 为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
答案 0 :(得分:1)
如何在没有前三个索引的情况下在每次迭代中打印数组?
假设您的字面意思是,这里的第一个结果似乎很好用: https://www.google.com/search?q=javascript+print+part+of+array
它说:
slice()方法
返回数组中选定的元素,作为新的数组对象...语法
array.slice(开始,结束)参数值
开始(可选)。一个整数,指定从何处开始选择...
结束。可选。一个整数,指定结束选择的位置。如果省略,将从开始位置到数组结尾的所有元素都将被选中...
因此,此语句应使javascript打印不包含前三个索引元素的数组:
console.log(array.slice(3));
答案 1 :(得分:1)
我在循环中尝试了slice()和shift()的一些变体,但在每次迭代中都会删除更多或les索引。因此,我改变了主意并在每次打印迭代后清除了数组:
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()的帮助。