sort() 메서드는 배열 요소를 정렬하는 데 사용됩니다. 헤더 파일 알고리즘에 포함
문법
arrayObject.sort(sortby)
参数 | 描述 |
---|---|
sortby | 可选。规定排序顺序。必须是函数。 |
반환값
배열에 대한 참조입니다. 배열은 원본 배열에 따라 정렬되며 복사본이 만들어지지 않습니다.
1. 기본 상황
기본적으로 sort() 메서드는 배열 항목을 오름차순으로 정렬합니다. 정렬을 수행하기 위해 sort() 메서드는 각 배열 항목의 toString() 변환 메서드를 호출한 다음 결과 문자열을 비교하여 정렬 방법을 결정합니다. 다음과 같습니다:
var values = ["orange","apple","banana"]; values.sort(); console.log(values);//结果["apple", "banana", "orange"]
그러나 배열의 각 항목이 숫자 값인 경우에도 sort() 메서드는 다음과 같이 문자열을 비교합니다.
var values = [,,,,]; values.sort(); console.log(values);//结果[, , , , ]
2. 값 정렬
sort() 메소드는 비교 함수를 매개변수로 받을 수 있습니다.
비교 함수는 두 개의 매개변수를 받습니다. 첫 번째 매개변수가 두 번째 매개변수보다 앞에 있어야 하면 음수를 반환합니다. 두 매개변수가 같으면 0을 반환합니다. 첫 번째 매개변수가 두 번째 매개변수 뒤에 있으면 반환합니다. 양수.
function compare(a, b){ return (a - b); }//按升序排列的比较函数 var values = [,,,,]; values.sort(compare); console.log(values);//结果[, , , , ]
3. 객체 속성에 따라 배열 정렬
먼저 속성 이름을 받는 함수를 정의한 다음 이 속성 이름을 기반으로 비교 함수를 만듭니다. 이 함수의 정의는 다음과 같습니다.
function createComparisonFunction(propertyName){ return function(object, object){ var a = object[propertyName]; var b = object[propertyName]; if(a < b){ return -; }else if(a > b){ return ; }else{ return ; } } }//返回一个根据属性名创建的按升序排列的比较函数
내부 함수는 propertyName 매개변수를 수신한 후 대괄호 표기법을 사용하여 지정된 속성의 값을 가져옵니다.
위 기능은 아래 예시와 같이 사용할 수 있습니다.
var data = [{name:"Lily", age: }, {name:"Judy", age: }]; data.sort(createComparisonFunction("name")); console.log(data[].name);//Judy data.sort(createComparisonFunction("age")); console.log(data[].name);//Lily
위 내용은 에디터가 소개한 Sort() 함수의 다양한 활용법입니다.