Array.prototype.sort 메소드는 배열을 정렬하는 것입니다.
먼저 정렬의 간단한 적용을 살펴보겠습니다.
var arr=[2,1,3,4];
alert(arr.sort()) // [1,2,3,4] 작은 것부터 큰 것까지 정렬
//현재 큰 것부터 작은 것 순으로 정렬하여 [4,3,2,1]
alert(arr.sort(function(left,right){return left>right?-1:1}))
// 여기서 sort 메소드는 매개변수 함수 1 또는 -1의 반환 값을 사용하여 순서대로 정렬할지 아니면 반전할지 결정합니다.
앞서 Function.apply 메서드를 사용하여 배열의 가장 큰 요소 방법?
이 기사에서는 배열의 최대값을 얻기 위해 두 가지 방법을 사용합니다.
이제 sort도 이를 보여줄 수 있습니다.
var arr=[2,1, 3, 4];
var minValue=arr.sort()[0];
var maxValue=arr.sort()[arr.length-1] // arr.sort().pop()
이것도 대체 구현 방법입니다.
하지만 이 방법은 수십 또는 수백 개의 요소에 대해 가장 효율적이지 않습니다. 배열의 경우에도 이 기술을 사용할 수 있습니다.
그러나 배열이 매우 큰 경우 sort() 메서드를 사용하면 너무 느려서 짜증이 날 수 있습니다.
sort 정렬 방법에 대해 자세히 논의하세요.
1. 다차원 배열 정렬
var arr=[
| ("n")) "이제 세 번째 열을 기준으로 정렬하세요.
" arr.sort(function(left,right){return left[2]>right[2]?1:-1}).join("n"))
alert("이제 세 번째 열을 거꾸로 기준으로 정렬합니다. down n" arr.sort(function(left,right){return left[2]>right[2]?-1:1}).join("n"))
2. 복잡한 데이터 구조 정렬
Array.prototype.each=function(f){for(var i=0;i
var arr=[
arr.sort(function(left,right){return left.money>right.money ?-1:1}).each(showName)
참조:
http://www.cnblogs.com/ ashun/archive/2006/11/30/appendChild_table_sort.html
더 복잡한 테이블 정렬(Array의 정렬 기능도 사용):
http://community.csdn.net/expert/Topicview2.asp? id=5174915
4. Protype.js에 정렬에 대한 아이디어가 있습니다. 매우 영리한 확장입니다. 먼저 그의 코드를 살펴보겠습니다.
1 sortBy: function(iterator) {
2 return this.collect(함수(값, 인덱스) {
3 return {값: 값, 기준: iterator(값, 인덱스)};
4 }).sort(함수(왼쪽, 오른쪽) {
5 var a = left.criteria, b = right.criteria;
6 return a
b 1 : 0
7 }).pluck('value'); 8 },
이 sortBy를 사용하면 함수를 전달하고 배열의 각 요소를 정렬할 수 있으며, 함수를 실행하기 위해 요소를 매개변수로 사용하고, 마지막으로 함수에서 반환된 결과를 정렬합니다.
아래에서 이 함수를 분석하겠습니다.
collect 메서드는 실제로
Array.prototype.map=function(f){
for(var i=0과 동일합니다. ;ret=[];i
예를 들어, 이제
arr=[2,1,4,3]
iterator=function(x){return x*x}
1-3줄의 코드는 이러한 배열을 얻습니다.
[
{value:2,criteria:4},
{value:1,criteria:1},
{value:4,criteria:16},
{value:3,criteria:9}
]
4-6줄의 코드는 기준에 따라 배열을 정렬합니다. 작은 것부터 정렬하면
[
{value:1,criteria:1},
{value:2,criteria:4},
{value:3,criteria:9},
{value:4,criteria:16}
]
7번째 코드 줄은 각 요소의 값 속성을 취하고 최종적으로 [1,2,3,4를 가져옵니다. ] arr sortBy(function...) 정렬
어쩌면 프로토타입.js의 sortBy에 대해 이야기할 때 어떻게 표현해야 할지 모르겠습니다.
여러분을 힘들게 해서 제가 쓴 설명 코드를 읽느라 고생을 해서 정말 죄송합니다