JS数组按日期分组

JavaScript07

JS数组按日期分组,第1张

若后台返回格式如下:

let data = [

    {"createdAt": "2020-08-02T11:00:24.580Z", "name": "西瓜"},

    {"createdAt": "2020-08-03T11:00:24.580Z", "name": "水蜜桃"},

    {"createdAt": "2020-08-03T11:00:24.580Z", "name": "樱桃"},

    {"createdAt": "2020-08-02T11:00:24.580Z", "name": "西柚"},

]

      方法:使用 dayjs(createdAt).format('YYYY-MM-DD') 转换

      注:dayjs 安装引用

             npm install dayjs --save     import dayjs from 'dayjs'

     for ( let i=0i<array.lengthi++ ) {      

            let createdAt = dayjs(array[i].time)

            array[i].createdAt = createdAt

    }

 mapName (array) {

          let newArray = []

          array.forEach((item, i) =>{

              let index = -1

              let alreadyExists = newArray.some((newItem, j) =>{

                  if (item.createdAt === newItem.createdAt) {

                      index = j

                      return true

                  }

              })

              if (!alreadyExists) {

                  newArray.push({

                      createdAt: item.createdAt,

                      name: [item.name]

                  })

              } else {

                  newArray[index].price.push(item.name)

              }

          })

          return newArray

      }

你好,

先说一年的月份,这个需要问吗?一年能出现13个月?所以:

var monthOfYear = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

// 或者中文,根据你的需求自己定

var monthOfYear = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']

再来说获取最近三个月月份的事情:

// 先取到当前日期对象

var date = new Date()

// 月份数组

var nearThree = []

// 当月

var month = date.getMonth()

// 现将本月推入数组

nearThree.push(monthOfYear[month])

// 最近一月逆推两个月

for (var i = 1 i <= 2 i++) {

    date.setMonth(month - i)

    nearThree.unshift(monthOfYear[date.getMonth()])

}

console.log(monthOfYear)

console.log(nearThree)

好了,希望能解决你的问题。

之前我已经有讲过后台返回json数据到前台,并在前台遍历json数据。

这里讲下直接在JS里创建JSON数据,然后遍历使用~

创建代码如下:(创建的是JSON对象)

?

12345678

var YearSelect = {}var Year = 2014var DateOptionfor (var i = Yeari <Year + 12i++) { DateOption = {'Year':i, 'Month':i-Year+1}/ alert(DateOption.Year) YearSelect[i] = DateOption}

这里是创建一个JSON对象,包括了年份和月份的数据。

我为什么创建JSON对象,是因为我对JSON对象比较熟悉。php后台返回的也是json对象。

json对象没有length属性~~

所以遍历的话要:

for(var key in YearSelect){ alert(YearSelect[key].Year)alert(YearSelect[key].Month)}

这样就可以了~

记住一定要分辨好json的对象和数组~不然就一直是undenfined