如何在给定的某个月份获取上个月的名称(用文字而不是数值)? [复制]
Posted
技术标签:
【中文标题】如何在给定的某个月份获取上个月的名称(用文字而不是数值)? [复制]【英文标题】:How to get previous month name on given some month (in words not numerical value)? [duplicate] 【发布时间】:2021-11-10 10:06:41 【问题描述】:我想要一个函数,可以给出任何给定月份的上一个月的全名[不仅仅是当前月份]
例如:prevMonth(August) = July; prevMonth(January)= December
。
我是 js 新手,不知道如何使用这个数组来获取结果:
monthsarray: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
【问题讨论】:
您好,请查看developer.mozilla.org/en-US/docs/Web/javascript/Reference/… 我可以通过在使用 Copilot 时简单地输入函数名称并点击选项卡来创建解决方案。 travis.media/how-to-use-github-copilot-vscode - 我认为 Copilot 非常适合想要学习解决问题的好方法的新开发人员。只要你花时间理解代码。const getPrev = month => const m = monthsarray.indexOf(month); return monthsarray[(m+monthsarray.length-1)%monthsarray.length];
标记的副本没有回答这个问题。
@mplungjan——不知道你为什么要打扰const m
,它只用了一次并且需要大量额外的输入:const getPrev = month => monthsarray[(monthsarray.indexOf(month) + monthsarray.length - 1) % monthsarray.length];
:-)
【参考方案1】:
期待这样一个简单的解决方案吗?
var monthsarray = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
function prevMonth(curMonth)
var curMonthIndex = monthsarray.indexOf(curMonth);
var prevMonthIndex;
if (curMonthIndex == 0) prevMonthIndex = monthsarray.length - 1;
else if (curMonthIndex == monthsarray.length - 1) prevMonthIndex = 0;
else prevMonthIndex = curMonthIndex - 1;
return monthsarray[prevMonthIndex];
console.log(prevMonth("August"));
console.log(prevMonth("December"));
【讨论】:
【参考方案2】:let monthsarray1= ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] ;
let m="May";
console.log(pvsMonth(m))
function pvsMonth(m)
let ln=monthsarray1.length
let idx=monthsarray1.indexOf(m)
if(idx==0)
return monthsarray1[ln-1]
else
return monthsarray1[idx-1]
【讨论】:
【参考方案3】:function prevMonth(month)
const index = monthsarray.indexOf(month);
if (index > 0)
return monthsarray[index - 1];
if (index === 0)
return monthsarray[monthsarray.length - 1];
throw new Error('Invalid Month given');
【讨论】:
以上是关于如何在给定的某个月份获取上个月的名称(用文字而不是数值)? [复制]的主要内容,如果未能解决你的问题,请参考以下文章