我有月份数组,应该将左旋转到右一段时间。将所有旋转数组存储在对象变量中。能否请您提出更有效的方法。
var Month = ["Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec"];
Output looks like:
monthRotate = {
rotate1: ["Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan"],
rotate2: ["Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan", "Feb"],
.
.
.
.
rotate11: ["Dec", "Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov"];
}
我已尝试过以下方法。
var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var rotate = {};
for (var i=1;i<months.length;i++){
var mts = months.slice(i).concat(months.slice(0,i));
rotate["rotate"+i] = mts;
}
console.log(rotate);
答案 0 :(得分:2)
您可以使用shift
方法删除给定array
的第一个元素,然后在数组的末尾推送。强>
var months = ["Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec"];
let final = [...Array(months.length-1)].reduce(function(arr){
months.push(months.shift());
arr.push([...months]);
return arr;
},[]);
console.log(final);
答案 1 :(得分:1)