Tôi có mảng tháng cần được xoay còn lại đến phải cho thời lượng dài của nó. Lưu trữ tất cả các mảng quay trong biến đối tượng. Bạn có thể đề nghị cách hiệu quả hơn để làm điều đó không.Xoay mảng và lưu trữ tất cả kết hợp trong biến đối tượng
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"];
}
Tôi đã thử phương pháp dưới đây.
var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var rotate = {};
for (var i=1;i<months.length;i++){
\t var mts = months.slice(i).concat(months.slice(0,i));
\t rotate["rotate"+i] = mts;
}
console.log(rotate);
hiệu quả hơn so với những gì? cho vòng lặp sẽ là hiệu quả nhất, nhưng thậm chí hiệu quả hơn là không xoay ở tất cả nhưng chỉ sử dụng một cái gì đó như 'Tháng [(chỉ số + xoay)% 12]' – Slai
Bạn nên sử dụng thông minh của 'Array.shift'and Các nguyên mẫu 'Array.unshift', có thể được liên kết thông qua' Array.concat'. Hãy thể hiện nỗ lực của bạn mặc dù, tôi không thấy nhiều ở đó nhưng đầu ra. – briosheje
Tôi đang nghĩ phương pháp đệ quy sẽ là một cách thay thế – Sparrow