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

<!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>
原文地址:https://www.cnblogs.com/studyh5/p/9989801.html