方法1:简单的组数对像排序
allArrSort (arrayData, item, mode) {
if (this.isArray(arrayData)) {
if (mode === 'DESC') {
arrayData.sort((x, y) => y[item] - x[item]) // 倒序
} else {
arrayData.sort((x, y) => x[item] - y[item]) // 正序
}
// arrayData.map((currItem, index) => { // 自动排序
// currItem[item] = index + 1
// return currItem
// })
return arrayData || []
}
注:以上代码如有两个相同的seq,那就会排在后面
方法2:简单的组数对像排序
arrayItemSort (arrayData, item) {
function funSort (property) {
return function (a, b) {
let x = a[property]
let y = b[property]
return x - y
}
}
return arrayData.sort(funSort(item))
}
方法三:
// 1.把选中插入1的数组---第二次插入时需做查重复处理
// 2.数组1有的。。原数据都要删除生成2数据
// 3.1和2数组排序
// 4.合并两个数据
// 5.重新排序
let sortDataArr1=[]
let sortDataArr2 = []
let arrayData=[{seq:1,id:1},{seq:2,id:2},{seq:3,id:3},{seq:4,id:4}]
allArrSort (arrayData, name, obj) { // 自定义排序处理
const arr1 = arrayData.find(item => item.id === obj.id)
if (!sortDataArr1.length) {
// console.log('第一次插入')
sortDataArr1.unshift(arr1)
} else {
// console.log('第二次插入')
sortDataArr1.filter((item, index, arr) => {
if (item.id === obj.id) {
arr.splice(index, 1) // 删除重复的数据
}
})
sortDataArr1.unshift(arr1)
}
sortDataArr1.forEach(item => {
arrayData.forEach((currItem, index, arr) => {
if (currItem.id === item.id) {
arr.splice(index, 1) // 删除重复的数据
}
})
})
sortDataArr2 = arrayData
sortDataArr1.sort((x, y) => x[name] - y[name]) // 正序
sortDataArr2.sort((x, y) => x[name] - y[name])
const retData = [...sortDataArr1, ...sortDataArr2 ]
retData.sort((x, y) => x[name] - y[name])
retData.map((item, index) => {
item[name] = index + 1
return item
})
retrun retData
}
allArrSort (arrayData, 'seq',{seq:5,id:5})