js按照属性排序
通常在项目中后台会返回一个json对象数组给我们,并且是无序的,而在页面上我们需要按照一定的顺序排序,通常是按照某个属性来进行排序的,那么怎么按照某个属性给一个元素都是对象的数组进行排序。
var arr=[
{age:13,name:'sdsd'},
{age:12,name:'ewewr'},
{age:10,name:'fdggf'}
]
我们想按照age这个属性来进行排序。
function sortArr(property,objArr){
return objArr.sort(obj1,obj2){
var val1=obj1[property],
val2=obj2[property];
return val1-val2; //这是按升序排的,要按降序排的话就把val1和val2的顺序对调
}
}
sortArr('age',arr);
--> var arr=[
{age:10,name:'fdggf'},
{age:12,name:'ewewr'},
{age:13,name:'sdsd'}
]
json数据缓存sessionStorage或者localStorage
众所周知的是,无论什么类型的数据存入sessionStorage或者localStorage或者cookie之后都会被转换成字符类型,如:
那么我们怎么将这个字符串取出来之后变成和原来一样的数据类型呢(这里的就是json类型的数组)我们一开始会想的是不是用split(‘,’)方法想办法拆分成数组,但是取出来的结果是这样的。
所以这种方法是不可行的,最简单的方法就是一开始咱们就将这个json数组转换成json类型的字符串存入到sessionStorage里面,然后取出来的时候咱们再用JSON.parse()方法将json类型的字符串转换成JSON数组,其实这个方法我们是投机使用了JSON数据类型提供给我们的类型转换方法。具体如下:
var arr=[
{age:10,name:'fdggf'},
{age:12,name:'ewewr'},
{age:13,name:'sdsd'}
];
sessionStorage.setItem('abc',JSON.stringify(arr));
JSON.parse(sessionStorage.getItem('abc'));
