Javascript 获取给定数字周围的数字范围

Javascript 获取给定数字周围的数字范围,javascript,Javascript,我需要预加载一些图像,因此根据当前幻灯片索引,我需要预加载上一张和下一张图像 例如,如果当前索引为23,并且范围设置为2,则要预加载的所有页面都将为21,22,23,24,25。如果currentIndex是0,那么它将是0,1,2 initial=0, pages=Array.from({length:50},({,i)=>i); 控制台日志(页); //方法#1:返回具有潜在未定义值的固定长度数组 让preload pages1=Array.from([-2,-1,0,+1,+2],v=>

我需要预加载一些图像,因此根据当前幻灯片索引,我需要预加载上一张和下一张图像

例如,如果当前索引为
23
,并且范围设置为
2
,则要预加载的所有页面都将为
21,22,23,24,25
。如果currentIndex是
0
,那么它将是
0,1,2

initial=0,
pages=Array.from({length:50},({,i)=>i);
控制台日志(页);
//方法#1:返回具有潜在未定义值的固定长度数组
让preload pages1=Array.from([-2,-1,0,+1,+2],v=>{
设n=初始值+v;
返回页[n];
});
控制台日志(第1页);
//方法2:有效,但过于冗长
设pages2=[];
对于(设i=initial-2;i
let initial=0,
pages=Array.from({length:50},({,i)=>i);
//建议#1
设preload 1=[];
for(设i=初始值-2;ip!==未定义);

这是怎么回事?这是一种使用ES6映射和过滤器的非常通用的方法:

函数生成器阵列(初始、偏移、最小、最大){
设temp_arr=[];
for(设i=-offset;i{
返回首字母+子字母;
})
返回修改后的数组过滤器((val)=>val>=min&&valconsole.log(generatarray(49,2,0,50));
如果新索引与数组长度不一致,则可以对数组进行切片并进行切片,或者进行两次切片

函数getValues(数组、填充、索引){ var length=array.length, 左=索引-填充, 右=索引+填充+1; 返回左>=0&&righti), 填充=2; log(…getValues(pages,padding,0)); log(…getValues(pages,padding,2));
log(…getValues(pages,padding,49))
这似乎更像是一个代码审查的问题,页面只能在0到50之间吗?@AlexL不,可以是任何东西。50只是一个例子。好吧,很好,那么现在我的答案非常通用,应该可以解决所有用例:
i in pages
?我在MDN上的中找不到关于
的任何东西。不过我知道
包括
e
中的
运算符是JS中最古老的运算符之一。IE支持IE,因为IE 5.5
如果您将属性设置为未定义但不删除它,则in运算符将为该属性返回true。
谢谢,很高兴了解它,但对于我当前的要求似乎没有用处。