js数据处理util

方法汇总

据时间范围生成时间刻度数据

/*
    *@params startDate 开始时间
    *@params endDate 结束时间
    *@params timeUnit 时间间隔,注意是毫秒数
    **/
    function createTimeUnitListByTimeRange(startDate, endDate, timeUnit){
        let startSeconds = new Date(startDate).getTime();
        let endSeconds = new Date(endDate).getTime();

        // 必须用计算机初始时间的时间戳来作为基准点,否则时区会影响初始时间戳毫秒数
        let base = new Date('1970-01-01 00:00:00').getTime();

        let rangeTimeUnitList = [];
        let firstDegree;

        // 第一个刻度,可能刚好在你需要的整点刻度上,如果不在整点上,减去多余的部分,往前推一个刻度。
        // 此处就是减掉基准时间戳再执行整除操作,否则如果以天为刻度,整除86400000,得到的第一个刻度会是包含时区的时间,如北京时间:2020-09-10 08:00:00
        firstDegree = startSeconds - (startSeconds - base) % timeUnit;

        rangeTimeUnitList.push(firstDegree);

        // 当最后一个刻度大于截止时间,停止创建刻度数据
        while(firstDegree<endSeconds){
            firstDegree += timeUnit;
            rangeTimeUnitList.push(firstDegree);
        }

        return rangeTimeUnitList;
    }

    console.log(createTimeUnitListByTimeRange('2020-01-01','2020-09-10',86400000), '测试');

数组遍历-分类

let arr = [{spid:'01',gysid:"a",spname:"商品1",price:2},
    {spid:'02',gysid:"a",spname:"商品2",price:21},
    {spid:'03',gysid:"b",spname:"商品3",price:56},
    {spid:'04',gysid:"c",spname:"商品4",price:21},
    {spid:'05',gysid:"c",spname:"商品5",price:23}]

let obj = arr.reduce((last,item)=>{
    if(last[item.gysid]){
        last[item.gysid].push(item)
    }else{
        last[item.gysid]=[item]
    }
    return last
},{})
console.log(obj)
{
  a: [
    { spid: '01', gysid: 'a', spname: '商品1', price: 2 },
    { spid: '02', gysid: 'a', spname: '商品2', price: 21 }
  ],
  b: [ { spid: '03', gysid: 'b', spname: '商品3', price: 56 } ],
  c: [
    { spid: '04', gysid: 'c', spname: '商品4', price: 21 },
    { spid: '05', gysid: 'c', spname: '商品5', price: 23 }
  ]
}

数组去重-对象1

const a=[
    {
    name:'cy',age:10,
},
    {
        name:'cy',age:18,
    },
    {
        name:'zq',age:16,
    },
]
let obj1={}
a.forEach(item=>{
    obj1[item.name]=item
})
console.log(Object.values(obj1))

数组去重-对象2

//去重:目标数组,根据什么去重
 const uniqueFun = (arr, sx) => {
    let obj = {};
    let peon = arr.reduce((cur, next) => {
        obj[next[sx]] ? '' : (obj[next[sx]] = true && cur.push(next));
        return cur;
    }, []);
    return peon;
};
console.log(a,uniqueFun(a,'name'))
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值