为了账号安全,请及时绑定邮箱和手机立即绑定

js 如何把salary数组中 postDate 是相同月份的 amountMoney相加 返回新的

js 如何把salary数组中 postDate 是相同月份的 amountMoney相加 返回新的

繁星coding 2019-03-14 23:19:59
{"salary": [{  "postDate": "2017-09-29 00:00:00",  "amountMoney": "495.0"},{  "postDate": "2017-09-13 00:00:00",  "amountMoney": "495.0"},{  "postDate": "2017-09-04 00:00:00",  "amountMoney": "2526.06"},{  "postDate": "2017-08-08 00:00:00",  "amountMoney": "495.0"},{  "postDate": "2017-08-08 00:00:00",  "amountMoney": "2526.06"},{  "postDate": "2017-07-24 00:00:00",  "amountMoney": "495.0"},{  "postDate": "2017-07-19 00:00:00",  "amountMoney": "2526.06"},{  "postDate": "2017-06-16 00:00:00",  "amountMoney": "2772.06"}]}
查看完整描述

5 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

var salary = [

    {

      "postDate": "2017-09-29 00:00:00",

      "amountMoney": "495.0"

    },

    {

      "postDate": "2017-09-13 00:00:00",

      "amountMoney": "495.0"

    },

    {

      "postDate": "2017-09-04 00:00:00",

      "amountMoney": "2526.06"

    },

    {

      "postDate": "2017-08-08 00:00:00",

      "amountMoney": "495.0"

    },

    {

      "postDate": "2017-08-08 00:00:00",

      "amountMoney": "2526.06"

    },

    {

      "postDate": "2017-07-24 00:00:00",

      "amountMoney": "495.0"

    },

    {

      "postDate": "2017-07-19 00:00:00",

      "amountMoney": "2526.06"

    },

    {

      "postDate": "2017-06-16 00:00:00",

      "amountMoney": "2772.06"

    }

];

var rs = [];

var json = {};

for (let i = 0, len = salary.length; i < len; i++) {

    var month = salary[i].postDate.split('-')[1];

    if (json[month] !== 1) {

        rs.push ({

            month: month,

            amountMoney: Number(salary[i].amountMoney)

        })

        json[month] = 1;

    } else {

        for (let j = 0, l = rs.length; j < l; j++) {

            if (rs[j].month == month) {

                rs[j].amountMoney += Number(salary[i].amountMoney)

            }

        }

    }

}

console.log(rs);


查看完整回答
反对 回复 2019-03-27
?
Qyouu

TA贡献1786条经验 获得超11个赞

array.map()


查看完整回答
反对 回复 2019-03-27
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

主要是不知道怎么把 月份数相同的amountMoney相加 也就是map()里面的内容。。


查看完整回答
反对 回复 2019-03-27
?
UYOU

TA贡献1878条经验 获得超4个赞

把postDate参数转换为 时间戳 进行相等匹配 再返回新数组


查看完整回答
反对 回复 2019-03-27
  • 5 回答
  • 0 关注
  • 645 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信