Heim  >  Artikel  >  Web-Frontend  >  js 重构Array的sort排序方法_javascript技巧

js 重构Array的sort排序方法_javascript技巧

WBOY
WBOYOriginal
2016-05-16 18:04:451376Durchsuche

这个排序是进行两两比较。
拿这个数组进行降序排列var a = [3, 1, 5, 6, 4, 2];
第一轮比较:用第一个数值和本数组的其他元素进行比对
3比1
3比5 //5大,所以所以进行交换 得a = [5, 1, 3, 6, 4, 2];
5比6 //交换 得a = [6, 1, 3, 5, 4, 2];
6比4
6比2
第一轮最终结果 a = [6, 1, 3, 5, 4, 2];
第二轮比较:用第二个数值和这个数值之后的元素进行对比
1比3 //交换 得a = [6, 3, 1, 5, 4, 2];
3比5 //交换 得a = [6, 5, 1, 3, 4, 2];
5比4
5比2
第二轮最终结果 a = [6, 5, 1, 3, 4, 2];
就这样依次进行交换
第三轮最终结果 a = [6, 5, 4, 1, 3, 2];
第四轮最终结果 a = [6, 5, 4, 3, 1, 2];
第五轮最终结果 a = [6, 5, 4, 3, 2, 1];
下面是重构的方法:

复制代码 代码如下:

Array.prototype.fst = function(fn){
var fn = fn || function(a, b){ return a > b;};
for(var i=0; ifor(var j=i; jif(fn(this[i], this[j]) > 0){
var t = this[i];
this[i] = this[j];
this[j] = t;
}
}
}
return this;
};

查看实际演示

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn