1、对象排序大小
var data = [
{'val':'哈哈哈2',num:89},
{'val':'哈哈哈4',num:22},
{'val':'哈哈哈1',num:100},
{'val':'哈哈哈3',num:33},
]
function sortId(a,b){
return b.num-a.num;
}
result=data.sort(sortId);
结果
image.png
2、根据数组中的对象的多个属性值排序,多条件排序
var arr = [
{id:22,age:18},
{id:11,age:13},
{id:23,age:11},
{id:44,age:1},
]
arr.sort(function (a,b) {
if(a.id == b.id) {//如果id相同,按照age的降序
return a.id - b.id
}else{
return b.age - a.age
}
})
console.log(arr)
image.png
3、数组排序
Array有map()和filter()方法,可是Object没有这些方法,注意区别
var arr = [123, 456, 789, 121]
arr.sort((a,b)=>{
//a-b从小到大
//b-a从大到小
return a-b
})
console.log(arr)
打印结果
image.png
4、map举栗
map()方法可以创建一个新数组,其结果是该数组中的每个元素都是调用一个提供的函数后返回的结果
var array = [1,2,3,4,55];
var newarr = array.map(function(el,index,arr) {
console.log(el)//数组值
// console.log(index)//下标索引
// console.log(arr)//原数组
return el +1
})
console.log(newarr)//(5) [2, 3, 4, 5, 56]
5、vue对数据排序
单纯的数组数字进行排序,见vue使用sort()方法排序,根据数组中对象为数字情况进行排序,见下面代码
sortBykey(ary, key) {
return ary.sort(function (a, b) {
let x = a[key]
let y = b[key]
return ((x < y) ? -1 : (x > y) ? 1 : 0)
})
}
6、根据数组中对象为字母情况进行排序,见下面代码、VUE数组对象排序
let lists = [
{report_time: '11'},
{report_time: '22'}
]
function sortList(lists) {
// lists传的是数组
return lists.sort((a, b) => {
return a["report_time"].localeCompare(b["report_time"]); // grapheme为字母对应的属性名
});
}
let res = sortList(lists)
console.log(res)
返回结果
image.png
forEach 同等于= for