当前是一月。
var d = new Date();
var m = d.getMonth();
console.log(m)
将放0;
我有一个数组:
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
我想返回最近的4个月。从当月开始。所以在这种情况下。 一月,十二月,十一月,十月 我该如何实现?
var monthSliced = months.slice(m, m4).reverse();
返回:["Apr", "Mar", "Feb", "Jan"]
有什么想法吗?
答案 0 :(得分:2)
您可以循环四次,每次循环时,都可以使用months.slice(m).shift()
从数组中获取元素。使用这种检索方法,您可以输入负索引并从数组末尾检索元素:
const d = new Date();
let m = d.getMonth();
const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
const result = [];
for(let i = 0; i < 4; (i++, m--)) {
result.push(months.slice(m).shift());
}
console.log(result);
答案 1 :(得分:1)
一种实现方法是:
const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
const currentMonth = new Date().getMonth();
const result = [];
for(let i = currentMonth; i > currentMonth - 4; i--) {
result.push(months[(months.length + i) % months.length]);
}
console.log(result);
答案 2 :(得分:0)
var currentDate = new Date();
var currentMonth = currentDate.getMonth();
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
var result = [];
function getPreviousMonths(month, count) {
if(count > 3) return;
if(month === -1) month = 11;
result.push(months[month])
getPreviousMonths(--month, ++count)
}
getPreviousMonths(currentMonth, 0, [])
console.log(result)