array排序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、普通数组排序
array.sort()
该排序方式是将array中的,调用每个数组项的toString()方法,得到字符串,然后再对字符串进行排序
array.sort()可以接收参数,比较函数。(比较函数会把字符串转化为数字)
比较函数接收两个参数,若第一个参数应该位于第二个之前则返回一个负数,相等返回0,若第一个应该位于第二个之后则返回一个正数
例:
var arr = [23,9,4,78,3]
var compare = function(x,y){//比较函数
if(x return -1;
}else if(x>y){
return 1;
}else{
return 0;
}
}
console.log(arr.sort(compare));
结果为
[3,4,9,23,78]
2、数组对象排序
和1类似,也是使用比较函数
例如:比较对象中某个属性
var compare = function(obj1,obj2){
var val1 = obj1.attr;
var val2 = obj2.attr;
//后面和1相同
if(val1 return -1;
}else if(val1>val2){
return 1;
}else{
return 0;
}
}
console.log(arr.sort(compare));
再进行改造一下,按照age排序
var compare = function(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 return -1;
}else if(val1>val2){
return 1;
}else{
return 0;
}
}
}
arr.sort(compare("age"))
数组遍历
[].forEach(function(value,index,array){
array[index] == value
})
===
$.each([],function(index,value,array){})
3、arrayObject上splice()与slice()方法的区别
arrayObject.slice(start,end) 不改变原数组,返回新数组,从start到end(不包括该元素)
若end未定义,则会选取所有元素
可以使用负数从数组的尾部开始选取元素

arrayObject.splice(index,howmany,item,...,itemX){} 返回包含被删除项目的新数组
splice()方法可以删除从index处开始的零个或者多个元素,并且用参数列表中声明的元素替换被删除的元素
index:必需,规定添加或删除项目的位置
howmany:必需,规定要删除的数量
item1,...,itemX可选:向数组中添加新项目

相关文档
最新文档