이 기사에서는 js의 배열 정렬 정렬 방법의 원리를 예제를 통해 분석합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
최근 바이두 프로젝트에서 배열을 정렬해야 하는데, 당연히 처음에는 배열의 정렬 방법을 생각했는데 이 방법의 적용은 대략 다음과 같습니다.
window.onload=function(){
var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98];
var arr2=["조지","존","토마스","제임스","애드류","마틴"];
함수 정렬(a,b){
a-b 반환;
}
console.log(arr.sort(arrsort)); //숫자 정렬에는 함수가 필요합니다. 큰 것부터 작은 것까지 정렬하려면 b-a;를 반환하세요.
console.log(arr2.sort()) // 문자는 필요하지 않습니다
}
그런데 갑자기 정렬의 사용법이 왜 이렇게 간단하고 그 원리가 무엇일까 하는 생각이 들었습니다. 그래서 정렬을 하지 않고 배열을 정렬해 보았는데, 그 원리는 배열의 최소값을 찾아 새 배열에 삽입한 다음 삭제하는 것이었습니다. 배열의 최소값 업데이트 배열 이후 계속해서 삽입할 최소값을 찾아 코드는 다음과 같습니다.
window.onload=function(){
var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98];
var len=arr.length;
console.log(arr.join(","));
var newarr=[];
for(var i=0;i
newarr.push(Math.min.apply(null,arr)); //새 배열에 최소값을 삽입합니다
arr.splice(r(arr,Math.min.apply(null,arr)),1); //삽입 후 최소값 즉시 삭제
}
//배열에서 최소값의 위치를 찾습니다
함수 r(s,v){
for(k in s){
If(s[k] == v){
k를 반환합니다.
}
}
}
console.log(newarr.join(","))
}
추신: 이것은 제가 작성한 방법일 뿐입니다. 정렬의 원리는 이렇지 않아야 합니다. 또한 배열을 정렬하는 방법은 인터넷에 많이 나와 있지 않습니다. 물론 위의 코드는 숫자 배열에만 해당됩니다. 문자열을 정렬하려면 문자열의 localeCompare 메서드를 고려해 보세요.
이 기사가 모든 사람의 JavaScript 프로그래밍 설계에 도움이 되기를 바랍니다.