今天在项目中需要mock数据,而且还要实现点击排序和筛选的功能。
关于数据的筛选我立马想到用数组的filter方法实现,其中type是外面传入的类型参数:
let arrayData = [....这里是mock的数据...];
let type = params.type;
let data = arrayData.filter(item=> item.type === type)
数据的排序我想到了用数组的sort()方法来实现,参数是一个比较函数,另外order和sort分别是外面传入的排序字段参数和升降序参数。
let order = params.order;
let sort = params.sort;
data = data.sort(compare(order,sort));
//比较函数
function compare(property,sort){
return function(obj1,obj2){
let value1 = obj1[property];
let value2 = obj2[property];
//根据参数sort的true/false 进行升序或降序排列
if(sort){
return value1 - value2 //升序
}else{
return value2 - value1 //降序
}
}
}
这样就可以实现mock静态数据的筛选和排序功能,能够达到和数据库查询数据一样的效果。