繁体   English   中英

JavaScript:- 将月份添加到对象数组中

[英]JavaScript:- Add months to array of object

我有一个对象数组。 数组长度为 12。我需要为每个对象添加月份,添加月份的最佳方法是什么

  array = [ {name:"aa"},{name:"bb"}, {name:"cc"}.......]. 

结果我要

array = [ {monthName: 'January', name:"aa"},{monthName: 'February',name:"bb"}, {monthName: 'March',name:"cc"}............]. 

由于月份名称是不可变的,并且您已经知道数组的长度正好是 12,因此只需手动一一进行即可。 有更高级的方法可以做到这一点,但没有一种方法容易理解或有效利用资源。

array[0].monthName = 'January';
array[1].monthName = 'February';
array[2].monthName = 'March';
...

将所有月份存储在数组中months = ['January', 'February', 'March'.....]

循环遍历array并匹配索引

array.map((x, index) => {
  if(months[index]) {
    x.monthName = months[index];
  }
  return x;
}

您可以添加一个月份数组,而无需更改该数组,您可以根据您的first array创建another variable并将月份添加为 prop:

 let array = [{ name: "aa" }, { name: "bb" }, { name: "cc" }]; let months = ["JAN", "FEB", "MAR"] const res = array.map((el, index) => ({ name: el.name, month: months[index] })); console.log(res)

首先,你必须声明一个数组,它的月份如下数组

let month = ['January',February', .... ];

现在您必须迭代源数组,即数组并为每个对象推送月属性。 下面提供了代码片段。

array.forEach(element,index)=>{
     element['monthName'] = month[index]
}

自己定义一个月份的数组,或者从像moment.js这样的库中获取它。

这样,如果您需要更轻松,您就可以在以后处理日期。 如果您愿意,您还可以获得本地化(不是一件容易的事)和简称(例如“Jan”而不是“January”)。

 var array = [{name:"aa"}, {name:"bb"}, {name:"cc"}]; var months = moment.months(); // or .monthsShort(); array.forEach((e, idx) => { if (months[idx]) e.monthName = months[idx]; }); console.log(array);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment-with-locales.min.js"></script>

是有关months()monthsShort()的文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM