• 往数组里添加对象,根据某个属性值找对应的组进行排序


    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
    <title>往数组里根据某个属性进行排序</title>
    </head>
    <body>
    </body>
    <script type="text/javascript">
    var arr = [
    {
    "type":"c",
    "occ_id":"5",
    "sn":100,
    "icon": "https://onecar-icon.oss-cn-beijing.aliyuncs.com/1.png",
    "name": "维修技师",
    "checked": false
    },
    {
    "type":"t",
    "occ_id":"5",
    "sn":101,
    "icon": "https://onecar-icon.oss-cn-beijing.aliyuncs.com/wbt2.png",
    "name": "预约1",
    "tool_id": 7,
    "checked": false
    },
    {
    "type":"c",
    "occ_id":"7",
    "sn":200,
    "icon": "https://onecar-icon.oss-cn-beijing.aliyuncs.com/1.png",
    "name": "销售顾问",
    "checked": false
    },
    {
    "type":"t",
    "occ_id":"7",
    "sn":201,
    "icon": "https://onecar-icon.oss-cn-beijing.aliyuncs.com/wbt2.png",
    "name": "预约1",
    "tool_id": 7,
    "checked": false
    },
    {
    "type":"t",
    "occ_id":"7",
    "sn":300,
    "icon": "https://onecar-icon.oss-cn-beijing.aliyuncs.com/wbt2.png",
    "name": "预约1",
    "tool_id": 7,
    "checked": false
    }
    ];
    var obj33 = {
    "type":"c",
    "occ_id":"8",
    "sn":301,
    "icon": "https://onecar-icon.oss-cn-beijing.aliyuncs.com/1.png",
    "name": "维修技师",
    "checked": false
    }
    var obj11 = {
    "type":"c",
    "occ_id":"8",
    "sn":102,
    "icon": "https://onecar-icon.oss-cn-beijing.aliyuncs.com/1.png",
    "name": "维修技师",
    "checked": false
    }

    //arr 原数组 isTurn 是否轮到某组(jiangZongMod) isExists 是否存在于新数组中,刚开始并未存在 obj需要处理的obj sn 对象属性的标记值 divisor
    function checkIsSelected(arr, sn, obj) {
    var isTurn =parseInt(sn / 100);
    var newarr = []; // 复制出来的新数组
    var isExists = 0;// 在数组里吗? 一开始并不在
    var prev = -1;
    for (var i = 0; i < arr.length; i++) {
    var tmp = arr[i];
    var tmpsn = tmp.sn;
    // 当前的sn除以100的值记为mod,如果当前mod等于sn除以100,则开始记录prev(谁将排在该对象的前面)
    if (parseInt(tmpsn / 100) == isTurn) {//判断是否轮到该组
    if (isExists < 1) {//还没在数组里时
    prev = tmp;
    console.log(prev);
    }
    } else {
    if (prev == -1) {
    console.log("---还没找到对应的模块---");
    } else {
    if (isExists < 1) { // 如果在就不重复插入了
    newarr.push(obj);
    isExists = 2; // 现在在了
    console.log("---放在 " + prev.name + " 的后面---");
    console.log("---放在 " + tmp.name + " 的前面---");
    }
    }
    }
    console.log("---放入要复制的对象: " + tmp.name + " -------");
    newarr.push(tmp); // 正常创建对象
    }
    if (isExists > 1) {
    console.log("-----已经在数组里,不需要再处理姜总了-----");
    } else {
    /* console.log('ok');*/
    newarr.push(obj);//不在的话就push到新数组中
    }
    return newarr;
    }
    console.log(checkIsSelected(arr,obj33.sn,obj33));
    console.log(checkIsSelected(arr,obj11.sn,obj11));
    </script>
    </html>
  • 相关阅读:
    hibernate中持久化对象的生命周期(转载)
    IDEA调试技巧之条件断点
    POI中不推荐的方法与其替代的方法
    visualvm监控类是否是多例模式
    IDEA中Maven项目使用Junit4单元测试的写法
    JPQL的关联查询
    poi的cellstyle陷阱,样式覆盖
    studio 连不上远程仓库的各种原因分析
    Concurrent usage detected
    我的SSH框架实例(附源码)
  • 原文地址:https://www.cnblogs.com/studyh5/p/9989801.html
Copyright © 2020-2023  润新知