1.生成id
var newId = "xxxx-4xxx-yxxx-xxxxxxx".replace(/[xy]/g, function (c) {
var r = (Math.random() * 11) | 0,
v = c == "x" ? r : (r & 0x3) | 0x8;
return v.toString(16);
});
2.数组对象排序
function compare(prop) {
return function (obj1, obj2) {
var val1 = obj1[prop];
var val2 = obj2[prop];
if (!isNaN(Number(val1)) && !isNaN(Number(val2))) {
val1 = Number(val1);
val2 = Number(val2);
}
if (val1 < val2) {
return -1;
} else if (val1 > val2) {
return 1;
} else {
return 0;
}
}
}
let arr = [{name:'张四',value:4},{name:'张七',value:"7"},{name:'张二',value:'2'},
{name:'张一',value:1},{name:'张三',value:"3"},{name:'张五',value:"5"},
{name:'张六',value:6},]
arr.sort(compare('value'))
console.log(arr)
结果:
3.数组转树状数据
function handleTree(data, id, parentId, children, rootId) {
id = id || 'id'
parentId = parentId || 'parentId'
children = children || 'children'
rootId = rootId || 0
//对源数据深度克隆
const cloneData = JSON.parse(JSON.stringify(data))
//循环所有项
const treeData = cloneData.filter(father => {
let branchArr = cloneData.filter(child => {
//返回每一项的子级数组
return father[id] === child[parentId]
});
branchArr.length > 0 ? father.children = branchArr : '';
//返回第一层
return father[parentId] === rootId;
});
return treeData != '' ? treeData : data;
}