이 기사의 예에서는 JavaScript 사용자 정의 배열 정렬 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
배열에는 사용하기 더 편리한 자체 정렬 기능이 있습니다. 우리가 분명히 알아야 할 한 가지는 정렬의 기초가 매개변수를 전달하지 않으면 문자 인코딩 순서에 따라 정렬됩니다( 유니코드 인코딩).
var a=["3","2","1"]; console.log(a[0].charCodeAt(0)); // 51 console.log(a[1].charCodeAt(0)); // 50 console.log(a[2].charCodeAt(0)); // 49 console.log(a.sort()); // ["1", "2", "3"] var a=["3","你","他"]; console.log(a[0].charCodeAt(0)); // 51 console.log(a[1].charCodeAt(0)); // 20320 console.log(a[2].charCodeAt(0)); // 20182 console.log(a.sort()); // ["3", "他", "你"] var a=["3","11","222"]; console.log(a.sort());// ["11", "222", "3"] // 多个字符的时候按照第一个字符的编码
하지만 정렬의 가장 유용한 점은 정렬을 사용자 정의할 수 있다는 것입니다. 이는 객체 배열 정렬과 같은 실제 응용 프로그램에서도 일반적입니다. 예를 들어, 선형 평면의 객체 배열을 특정 필드에 따라 정렬하려는 경우 직접 수행하는 함수를 작성할 수는 있지만 정렬만큼 편리하지는 않습니다.
var list = [ { max:3, avg:2, min:1 }, { max:10, avg:15, min:20 }, { max:8, avg:5, min:2 } ]; // 根据max字段对list对象进行排序,从小到大的顺序 // x,y就是要比较的数组的单个元素,这里就是list中的一个元素 // 排序方法主要是要提供一个比较大小的规则,换句话说也就是要说明谁大谁小 // 返回值为true or false function sortByField(x, y) { return x.max - y.max; } console.log(list.sort(sortByField));
작동 효과는 아래와 같습니다.
이 기사가 모든 사람의 JavaScript 프로그래밍 설계에 도움이 되기를 바랍니다.