使用javascript map扩展数组

时间:2017-10-04 06:44:28

标签: javascript ecmascript-6

[{
  "day": "Sat",
  "raw_date": "21/9/2017",
  "value": 123
},{
    "day": "Sun",
    "raw_date": "22/9/2017",
    "value": 4
}]

如何使用map向上面的数组添加3天?因为我有天财,我无法推动,我必须得到最后一项并从那里开始,我已经尝试过这样做

const result = arr.map((obj, i) => {
    if(i === arr.length - 1) { // should add 2 more days here
        return {
            day: moment(obj.day).add(1, 'd').format('DD MMM'),
            raw_date: moment(obj.raw_date).add(1, 'ddd').format('d'),
            value: 0
        }
    }

    return obj
})

但如何再增加2天?用另一张地图?我知道我可以这样做,但寻找更优雅的方法。

2 个答案:

答案 0 :(得分:0)

您无需在此处使用地图。

 var numberOfDates = 2;//change here if you want to vary it
 for(var i=0; i < numberOfDates; i++){
        var lastObj = arr[arr.length -1];
        arr.push({
            day: moment().isoWeekday(lastObj.day).add(1,'day').format('ddd'),
            raw_date: moment(lastObj.raw_date, 'DD/M/YYYY').add(1,'day').format('DD/M/YYYY'),
            value: 0
        });
 } 

Jsfiddle链接:http://jsfiddle.net/dp7rzmw5/4360/

答案 1 :(得分:0)

array.map函数用于转换值的数组长度。并且根据您的要求,思考(棘手的方式)如何使用 数组函数 。 要么 只需使用for()

请参阅此处https://atendesigngroup.com/blog/array-map-filter-and-reduce-js