• 对象数组进行升序排列,并组装数据格式


     <script>
            let chushiArr = [{
                    gradeName: '2021级',
                    stageName: '小学'
                },
                {
                    gradeName: '2022级',
                    stageName: '小学'
                },
                {
                    gradeName: '2026级',
                    stageName: '小学'
                },
                {
                    gradeName: '2029级',
                    stageName: '小学'
                },
                {
                    gradeName: '2023级',
                    stageName: '小学'
                },
                {
                    gradeName: '2020级',
                    stageName: '小学'
                },
                {
                    gradeName: '2023级',
                    stageName: '初中'
                },
                {
                    gradeName: '2023级',
                    stageName: '初中'
                },
                {
                    gradeName: '2020级',
                    stageName: '初中'
                },
                {
                    gradeName: '2029级',
                    stageName: '初中'
                },
                {
                    gradeName: '2020级',
                    stageName: '高中'
                },
                {
                    gradeName: '2019级',
                    stageName: '高中'
                },
            ]
    
    
    
            // 找到没有重复的阶段
            function getunion(arr) {
                if (arr && arr.length > 0) {
                    let newList = [];
                    for (let i = 0; i < arr.length; i++) {
                        if (newList.indexOf(arr[i].stageName) == -1) {
                            newList.push(arr[i].stageName)
                        }
                    }
                    return newList;
                }
            };
            let nainjiArr = getunion(chushiArr);
            console.log("阶段", nainjiArr)
    
    
            //根据gradeName字段进行升序排列
            function compare(property, desc) {
                return function (a, b) {
                    var value1 = a[property];
                    var value2 = b[property];
                    if (desc == true) {
                        // 升序排列
                        return parseInt(value1) - parseInt(value2);
                    } else {
                        // 降序排列
                        return parseInt(value2) - parseInt(value1);
                    }
                }
            }
            let arr = chushiArr.sort(compare("gradeName", true));
    
    
            // 构造数据结构
            function changeList(sateArr, changeArr) {
                let doUseArr = [];
                if (sateArr && sateArr.length > 0) {
                    for (let i = 0; i < sateArr.length; i++) {
                        doUseArr.push({
                            stageName: sateArr[i],
                            cont: [],
                        })
                        for (let k = 0; k < changeArr.length; k++) {
                            if (sateArr[i] == changeArr[k].stageName) {
                                doUseArr[i].cont.push({
                                    gradeName: changeArr[k].gradeName
                                })
                            }
                        }
                    }
                }
                return doUseArr;
            };
    
            console.log("最后的排序", changeList(nainjiArr, arr));
        </script>
    
    我们发现数字加汉字也是进行直接排序的哈;
    通过  return parseInt(value1) - parseInt(value2) 进行排列
    

    作者:明月人倚楼
    出处:https://www.cnblogs.com/IwishIcould/

    想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!

    万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!

    想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

    支付宝
    微信
    本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    ORA-02290: 违反检查约束条件
    上传图片
    dart视频教程
    'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。
    .net js有数据 但是跳转不到操作页
    LAYUI layedit 富文本框内容的取值
    LAYUI select 下拉框得高度
    防止页面刷新
    Hadoop常用命令
    spark常用命令
  • 原文地址:https://www.cnblogs.com/IwishIcould/p/14364765.html
Copyright © 2020-2023  润新知