Javascript - 将数字转换为月份名称

时间:2018-04-19 07:41:38

标签: javascript loops foreach numbers

我有一个非常简单的问题但由于某种原因我无法找到答案。

label.forEach(function(value){
    months.push(value['month']);
    revenue.push(value['revenue']);
});

label是数字和收入的数组,在我的例子中是

[
{month: 9, revenue: 400}, 
{month: 11, revenue: 500},
{month: 12, revenue: 600}
]

这是javascript中的forEach循环,它将收入和月份数推入两个单独的数组,问题是月份是一个数字(例如12),但我希望.push()推送一个月的名称(12月),我似乎找不到任何东西,所以我希望这里有人可以帮助我。

6 个答案:

答案 0 :(得分:2)

var months = [ "January", "February", "March", "April", "May", "June", 
           "July", "August", "September", "October", "November", "December" ];

var selectedMonthName = months[value['month']];

查看链接

stack 1

答案 1 :(得分:0)

这可以使用moment.js轻松完成。

var months = [];
months.push(moment().month(0).format("MMMM"));
console.log(months);
<script src="https://momentjs.com/downloads/moment.min.js"></script>

答案 2 :(得分:0)

您可以尝试以下操作:

var label = [{month: 9, revenue: 400}, 
            {month: 11, revenue: 500},
            {month: 12, revenue: 600}]

var months = [];
var revenue = [];
var m = [ "January", "February", "March", "April", "May", "June", 
           "July", "August", "September", "October", "November", "December" ];

label.forEach(function(value){
    var monthName = m[value.month - 1];
    months.push(monthName);
    revenue.push(value.revenue);
});

console.log('Months Array: ', months);
console.log('Revenue Array:', revenue);

答案 3 :(得分:0)

{{1}}

答案 4 :(得分:0)

Intl.DateTimeFormat('en', { month: 'long' }).format('1'); // January

可以使用Internationalization API

实现

答案 5 :(得分:0)

另一种简单的操作方法是使用地图,像这样创建一个

const monthNumberToLabelMap = {
  [1]: 'January',
  [2]: 'February',
  [3]: 'March',
  [4]: 'April',
  [5]: 'May',
  [6]: 'June',
  [7]: 'July',
  [8]: 'August',
  [9]: 'September',
  [10]: 'October',
  [11]: 'November',
  [12]: 'December',
}

然后像这样在代码中使用地图

label.forEach(function(value){
    months.push(monthNumberToLabelMap[value['month']]);
    revenue.push(value['revenue']);
});

注意:

不清楚您的月份数据的格式是什么,默认的javascript月份是0-11,在这种情况下您会更改我的地图