js 对数据分组(分组单位,年,月,日,时,分,秒)

bg: 微信小程序

我这里的需求是 按月分组

js 对数据分组(分组单位,年,月,日,时,分,秒)_第1张图片

<view class="app">
    <view class="list">
        <view class="list-item" wx:for="{{list}}" wx:key="_id">
            <view class="time_group"> {{item.date}} view>
            <view class="two">
                <view class="two-item" wx:for="{{item.subList}}" wx:for-item="items" wx:key="_id">
                    <view class="left">
                        <text>{{ items.type }}text>
                        <text>{{ items.stamp }}text>
                    view>
                    <view class="right">
                        {{items.num}}
                    view>

                view>
            view>

        view>
    view>
view>
page, app {
    background-color: #ededed;
    height: 100%;
    width: 100%;
}

.list {
    margin: 30rpx;
}

.time_group {
    padding: 20rpx;
    font-weight: bold;
}

.two {
    background-color: #fff;
    /* margin: 0 30rpx; */
    border-radius: 30rpx;
}

.two-item {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;

    height: 150rpx;
    padding: 0 30rpx;
    border-bottom: 1px solid #ededed;
}

.two-item:last-child {
    border: none;
}

.left {
    display: flex;
    flex-direction: column;
}

.left text:first-child {
    font-weight: bold;
}

.left text:last-child {
    color: #bfbfbf;
}

.right {
    color: #f40;
    font-weight: bolder;
}
const db = wx.cloud.database()
const app = getApp()

const config = require("../../config.js")

Page({
    data: {
		list: [],
    },


    onLoad: function (options) {
        this.getorder()
    },

    //获取佣金提现记录
    getorder() {
        db.collection('withdrawal').where({
            _openid: wx.getStorageSync('openid')
        })
            .get()
            .then(res => {
                console.log('res', res, res.data)

                this.dealData(res.data)

            })
            .catch(err => {
                console.log('err', err)
            })
    },

    dealData(arr) {
        for (let i = 0; i < arr.length; i++) {
            let num = new Date(arr[i].time)
            let str = ''

			// 处理这里(分组单位,年,月,日,时,分,秒)
            str += num.getFullYear() + '-'
            // str += num.getMonth() + 1 + '-'
            str += num.getMonth() + 1 
            // str += num.getDate()
            arr[i].date = str

            console.log(str)
        }

        console.log(arr)

        console.log(this.dataResort(arr));

        this.setData({
            list: this.dataResort(arr)
        })
    },

    // 按月分组
    dataResort(data) {
        // 定义空数组,用于存储新组装的数据
        let newArr = [];
        // 遍历数组
        data.forEach((item, i) => {
            // 默认当前操作的数据下标 -1 
            let index = -1;
            // 判断数组中是否已经存在当前遍历数据的时间
            let isExists = newArr.some((newItem, j) => {
                if (item.date == newItem.date) {
                    // 存在就保存当前数据下标  用于插入数据
                    index = j;
                    return true;
                }
            })

            // 如果没有就存储一条新对象数据
            if (!isExists) {
                newArr.push({
                    date: item.date,
                    subList: [item]
                })
            } else {
                // 如果有就插入到已存在的对象中
                newArr[index].subList.push(item);
            }
        })

        // 返回新数组
        return newArr
    },

})

喜欢或对你有帮助,请点个赞吧 。

有错误或者疑问还请评论指出。

我的个人网站 --> 点击访问 。


END

你可能感兴趣的:(微信小程序,提升体验,JavaScript,javascript,小程序)