我想要你的代码建议这个算法。
想象一下,你有一个数字0到9的数组。
在控制台中,您需要始终打印一组4个数字,从0开始。
所以例如第一组将是
0 - 1 - 2 - 3
当发生事件时,您需要打印下一个数字并从堆中删除
1 - 2 - 3 - 4
发生事件时,您需要执行相同的操作
2 - 3 - 4 - 5
依此类推,直到显示最后一个数字
6 - 7 - 8 - 9
在JavaScript中实现此功能的最优雅,更快捷的方式是什么?
不影响原始阵列。
解决方案
var range = [0,1,2,3,4,5,6,7,8,9];
var start = -1;
function get4()
{
start++;
if(start < 7 ) {
return range.slice(start,start+4);
}
}
console.log(get4());
console.log(get4());
console.log(get4());
console.log(get4());
console.log(get4());
console.log(get4());
console.log(get4());
答案 0 :(得分:2)
var start = 0;
var newArr = arr.slice(start, start + 4);
答案 1 :(得分:1)
var range = [0,1,2,3,4,5,6,7,8,9];
var start = -1;
function get4()
{
start++;
return range.slice(start,start+4);
}
console.log(get4()); //[0, 1, 2, 3]
console.log(get4()); //[1, 2, 3, 4]
console.log(get4().join(' - ')); //2 - 3 - 4 - 5 (use join if you want them formatted as a string)
console.log(range); //[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] (is still intact)