现在我们就来通过sort(sortby)函数自定义排序的逻辑。 // 升序vararr=[3,2,3,34,12,23,234,84,9];arr.sort(function(a,b){returna-b;});// 结果:2,3,3,9,12,23,34,84,234// 降序vararr=[3,2,3,34,12,23,234,84,9];arr.sort(function(a,b){returnb-a;});// 结果:234,84,34,...
1、sort(sortby)逆向思维。刚提到它其实有根据返回正负数或0来判断大小的隐藏规则,那么我们只需要取返回数的相反值就可以令sort(sortby)进行错误判断从而达到降序的效果: sortby返回负数:a>b; sortby返回0:a=b; sortby返回正数:a
在这种想法下面,我们还可以做一个设想:假如score相等的情况下,我们是否可以按照年龄的大小排序输出? functionsortBy(field1, field2) {returnfunction(a, b) {if(a[field1] === b[field1])returna[field2] -b[field2];returna.field1 -b.field1; } } arr1.sort(sortBy("score", "age")); 没错...
document.writeln(arrA);*/functiondesc(x,y) {if(x >y)return-1;if(x <y)return1; }functionasc(x,y) {if(x >y)return1;if(x <y)return-1; } arrA.sort(desc);//sort by descdocument.writeln(arrA); document.writeln(""); arrA.sort(asc);//sort by ascdocument.writeln(arrA); //输...
javascript sort by functionsortStores(canReadStores){letby=function(name,minor){returnfunction(o,p){leta,b;if(o&&p&&typeofo==="object"&&typeofp==="object"){a=o[name];b=p[name];if(a===null||b===null){returna===null?-1:1;}if(a===b){returntypeofminor==="function"?minor(...
function compare(property){ return function(a,b){ var value1 = a[property]; var value2 = b[property]; return value1 - value2; } } console.log(arr.sort(compare('age'))) arr输出结果: 上面都是对比数字来的,那么如果数组里全是字符串,或者数字,字符串混合的话,如何获取排序结果呢?
function NumAscSort(a,b) { return a - b; } function NumDescSort(a,b) { return b - a; } var arr = new Array( 3600, 5010, 10100, 801); arr.sort(NumDescSort); alert(arr); arr.sort(NumAscSort); alert(arr); 1. 2.
看完《javascript语言精粹》中的array.sort(comparefn)一节(Page81),很有启发性,于是自己试着实现这样一个通用函数by:无论数组对象为何种类型,调用此函数就能实现人们一般认知意义上的排序。 函数写完,发现没有起作用,debug了好久,最后还是决定求助SF的各位了! var by = function (name,minor){ return function (...
varcompare=function(x,y){if(x<y){return1;}elseif(x>y){return-1;}else{return0;}} 我们并不能用比较函数比较一个不能转化为数字的字符串与数字的顺序: 代码语言:javascript 复制 vararr=["b",5];console.log(arr.sort(compare)) 结果是 ["b", 5] 。因为比较函数在比较时,会把先把字符串转化...
function sortNumber(a,b) { return a - b } var arr = new Array(6) arr[0] = "10" arr[1] = "5" arr[2] = "40" arr[3] = "25" arr[4] = "1000" arr[5] = "1" document.write(arr + "") document.write(arr.sort(sortNumber)) 输出: 10,5,40,25,1000,1 1,5,10,25...