[英]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.