Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Slice from beginning if array ended javascript

So I'm working on some filters where users can select even from ex: "Friday to Tuesday" but how to I slice these from an array of dates

var days = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]

So how do I slice from index from 5 to 2 which should return:

["friday", "saturday", "sunday", "monday", "tuesday"]
like image 623
ekclone Avatar asked Dec 06 '25 14:12

ekclone


1 Answers

You could make a simple function that tests whether the end is smaller than the start and slice accordingly:

let days = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]

const wrapslice = (arr, start, end)  =>{
    return end < start 
    ? arr.slice(start).concat(arr.slice(0, end))
    : arr.slice(start, end)
}
console.log(wrapslice(days, 5, 2))
console.log(wrapslice(days, 2, 5))
console.log(wrapslice(days, 4))
like image 122
Mark Avatar answered Dec 09 '25 04:12

Mark