zoukankan      html  css  js  c++  java
  • js操作数组根据key值去做操作(应用层面)

    前端在处理后台返回的接口同时,可能也会在功能中对数据进行操作。在实际开发中可能出现比较常见的一类就是归类或者归并。

    如需要合并所有KEY值相同的的值,或者说累计相同KEY值所以在实际开发层面,在没有找到更好的办法之前我们想到的最多是for循环嵌套

    for循环进行归类,但是那样既不高效,可读性又差,所以我用reduce函数进行了缩减操作。如下

       //模拟一二用到的变量
        const  data = [{
            '2019-02-03': 1
        }, {
            '2019-01-01': 34
        }, {
            '2019-02-03': 12
        }, {
            '2019-01-01': 31
        }, {
            '2019-03-01': 5
        }];
        //模拟一 : 总结所有日期出现的次数如果有则叠加次数
        let new_data_one = data.reduce((v,i) =>Object.assign(v,v[Object.keys(i)[0]]?++v[Object.keys(i)[0]]:v[Object.keys(i)[0]]=1),{});
        console.log(new_data_one,'事例一');
        //模拟二 : 总结所有日期出现的值如果有则叠加值
        let new_data_two = data.reduce((v,i) =>Object.assign(v,v[Object.keys(i)[0]]?v[Object.keys(i)[0]]=Object.values(i)[0]+v[Object.keys(i)[0]]:v[Object.keys(i)[0]]=Object.values(i)[0]),{});
        console.log(new_data_two,'事例二');

    效果如下:

  • 相关阅读:
    Aspect Oriented Programming
    jsp01
    监听器
    Java编写验证码
    servlet07
    MySQL02
    MySQL01
    Java的jdk1.6与jre1.8中存在的差异
    登陆验证和二级联动
    ajax和json
  • 原文地址:https://www.cnblogs.com/blur-king/p/13376025.html
Copyright © 2011-2022 走看看