如何从Javascript数组中获取顺序元素?

如何从Javascript数组中获取顺序元素?,javascript,Javascript,我有一个Javascript数组: var cars = ["Saab", "Volvo", "BMW", "Volkswagen", "Fiat"]; 我知道我可以通过如下索引获得这些元素: cars[2] // => "BMW" 但是我怎样才能同时得到三个连续的元素呢 getThreeCarsByIndex(4) // => ["Fiat"

我有一个Javascript数组:

var cars = ["Saab", "Volvo", "BMW", "Volkswagen", "Fiat"];
我知道我可以通过如下索引获得这些元素:

cars[2] // => "BMW"
但是我怎样才能同时得到三个连续的元素呢

getThreeCarsByIndex(4) // => ["Fiat", "Saab", "Volvo"]

感谢您的帮助。

您可以定义一个自定义函数,并检查给定的计数+给定的索引是否大于数组的
长度

const getElementsFromIndex=(arr,ind,n)=>{
如果(n+ind>arr.length-1){
让elementsFromStart=ind+n-arr.length+1;
console.log(elementsFromStart)
返回arr.slice(ind).concat(arr.slice(0,elementsFromStart))
}
否则返回arr.slice(ind,ind+n);
}
常数arr=[1,2,3,4,5];

log(getElementsFromIndex(arr,4,3))
只需使用简单的模运算即可-

const cars=[“萨博”、“沃尔沃”、“宝马”、“大众”、“菲亚特”];
函数getThreeCarsByIndex(ix){
返回[0,1,2]。映射(偏移量=>cars[(ix+offset)%cars.length]);
}

log(getThreeCarsByIndex(4))使用模运算符获取所需索引,而不会超出范围

函数getThreeCarsByIndex(数组,索引) { 常量结果=[]; for(设i=0;i<3;i++) { push(数组[(索引+i)%array.length]); } 返回结果; } var汽车=[“萨博”、“沃尔沃”、“宝马”、“大众”、“菲亚特”]; log(getThreeCarsByIndex(cars,4))这里有一种方法

const cars=[“萨博”、“沃尔沃”、“宝马”、“大众”、“菲亚特”];
const getThreeCarsByIndex=(index)=>cars.slice(index,index+3).concat(cars.slice(0,(index+1)%3))

log(getThreeCarsByIndex(4))
使用
切片
。如果不满足长度(此处为3),则从数组开始抓取其余元素

const getThreeCarsByIndex=(arr,index)=>{
const res=arr.slice(索引,索引+3);
返回res.concat(arr.slice(0,3-res.length));
};
var汽车=[“萨博”、“沃尔沃”、“宝马”、“大众”、“菲亚特”];

log(getThreeCarsByIndex(cars,4))
只需编写

cars.sort().slice(1,4);
当然,您可以创建一个同样适用于其他数组的函数,例如

let cars=[“萨博”、“沃尔沃”、“宝马”、“大众”、“菲亚特”];
getSequentionalElements=(arr,firstElement,lastElement)=>arr.sort().slice(firstElement,lastElement)
让newArray=getSequentionalElements(cars,1,4)

log(newArray)不清楚。请多解释。它是循环链接的吗?使用模运算-
4%车。长度
(4+1)%cars。长度
(4+2)%cars。长度
车。切片(1,4)您需要先对数组进行排序,以将所需的值添加到数组的开头,然后使用切片。如果您在此处提出了自己的问题,则此操作不提供问题的答案。若要评论或要求作者澄清,请在其帖子下方留下评论。
cars.sort().slice(1,4);