JS의 특정 규칙에 따라 배열 요소를 정렬하는 방법

青灯夜游
풀어 주다: 2021-08-27 14:37:54
원래의
7545명이 탐색했습니다.

이전 글에서는 모든 배열 요소가 지정된 조건을 충족하는지 확인하는 여러 가지 방법을 소개했습니다. 관심이 있으시면 링크를 클릭하여 → "JS 배열 학습: 모든 배열 요소가 지정된 조건을 충족하는지 확인하기"를 읽어보세요. ". 이번에는 배열 정렬에 대해 이야기하고 JavaScript에서 배열 요소를 정렬하는 방법을 소개하겠습니다.

오늘 글의 주요 내용은 특정 규칙에 따라 배열 요소를 정렬하는 것입니다. 더 이상 고민하지 않고 배열 요소를 정렬하는 세 가지 방법이 있습니다.

방법 1: for 루프 사용

for 루프를 사용하여 배열을 정렬하면 버블 정렬이 떠오릅니다. 구현 코드를 살펴보겠습니다.

//每轮依次比较相邻两个数的大小,后面比前面小则交换
var b=0//设置用来调换位置的值
var a=[1,9,33,2,5,34,23,98,14]//冒泡排序
for(var i=0;i<a.length;i++){
	for(var j=0;j<a.length;j++){
		if(a[j]>a[j+1]){
			b=a[j]
			a[j]=a[j+1]
			a[j+1]=b
		}
	}
}
console.log(a)
로그인 후 복사

출력 결과:

JS의 특정 규칙에 따라 배열 요소를 정렬하는 방법

The 위의 코드는 작은 것부터 큰 것까지입니다. 큰 정렬, 큰 것부터 작은 것까지 정렬하려면 if 문의 판단을 추가하고 수정할 수 있습니다:

if(a[j]>a[j+1]){
...
}
로그인 후 복사

JS의 특정 규칙에 따라 배열 요소를 정렬하는 방법

방법 2: sort() 방법을 사용하세요

sort() 특정 조건에 따라 배열을 정렬하는 메서드 요소가 정렬됩니다.

구문: ​​array.sort([function])array.sort([函数])

sort() 方法两种情况:

  • 当方法的参数为空时,则按字母顺序对数组中的元素进行从小到大排序。

所谓的字母顺序,实际上是根据字母在字符编码表中的顺序进行排列的,每个字符在字符表中都有一个唯一的编号。

var a=[&#39;e&#39;,&#39;a&#39;,&#39;f&#39;,&#39;b&#39;,&#39;c&#39;,&#39;h&#39;,&#39;g&#39;,&#39;z&#39;,&#39;i&#39;]
a.sort();  //按字母顺序对元素进行排序
console.log(a);
로그인 후 복사

输出结果:

JS의 특정 규칙에 따라 배열 요소를 정렬하는 방법

如果元素不是字符串,则 sort() 方法试图把数组元素都转换成字符串,以便进行比较。需要注意当数字是按字母顺序排列时"40"将排在"5"前面。

var a=[1,2,40,4,5,50,6,7,8]
a.sort();  //按字母顺序对元素进行排序
console.log(a);
로그인 후 복사

输出结果:

JS의 특정 규칙에 따라 배열 요소를 정렬하는 방법

此时就需要通过一个函数作为参数来调用,即下面的第二种情况:

  • 当参数为一个函数时,将按函数指定的规则排序数组元素。

var a=[1,2,40,4,5,50,6,7,8]
a.sort(function(a,b){
     return a-b;//从小到大排序
     //return b-a;//从大到小排序
});
console.log(a);
로그인 후 복사

输出结果:

JS의 특정 규칙에 따라 배열 요소를 정렬하는 방법

当数组元素的前缀为数字而后缀为字符串时,如果希望这些元素能按数字大小进行排序,此时需对匿名函数中的参数作一些变通处理。

var a=[&#39;345px&#39;,&#39;23px&#39;,&#39;10px&#39;,&#39;1000px&#39;];
a.sort(function(a,b){
     return parseInt(a)-parseInt(b);;//从小到大排序
     //return parseInt(b)-parseInt(a);//从大到小排序
});
console.log(a);
로그인 후 복사

输出结果:

JS의 특정 규칙에 따라 배열 요소를 정렬하는 방법

方法3:利用reverse() 方法

如何不想将数组元素从小到大(或从大到小)进行排序,而是想倒序排序呢?那么可以使用reverse() 方法。

reverse() 方法能够颠倒数组元素的排列顺序,该方法不需要参数,直接 数组对象.reverse()

sort() 두 가지 경우 메서드:

  • When 메서드의 매개 변수가 비어 있으면 배열의 요소가 작은 것부터 큰 것까지 알파벳순으로 정렬됩니다.

JS의 특정 규칙에 따라 배열 요소를 정렬하는 방법 소위 알파벳 순서는 실제로 문자 인코딩 테이블의 문자 순서에 따라 배열됩니다. 각 문자는 문자 테이블에서 고유한 번호를 갖습니다.

var a=[&#39;345px&#39;,&#39;23px&#39;,&#39;10px&#39;,&#39;1000px&#39;];
a.reverse();
console.log(a);
로그인 후 복사

출력 결과: JS의 특정 규칙에 따라 배열 요소를 정렬하는 방법

요소가 문자열이 아닌 경우 sort() 메서드는 비교를 위해 배열 요소를 문자열로 변환하려고 시도합니다. 숫자를 알파벳순으로 정렬하면 "40"이 "5" 앞에 옵니다.

rrreee

출력 결과:

JS의 특정 규칙에 따라 배열 요소를 정렬하는 방법

이때 함수를 매개변수로 호출해야 하는데, 아래 두 번째 경우입니다. 🎜
  • 🎜매개변수가 다음과 같은 경우 함수를 사용하면 배열 요소가 함수에서 지정한 규칙에 따라 정렬됩니다. 🎜
rrreee🎜출력 결과: 🎜🎜JS의 특정 규칙에 따라 배열 요소를 정렬하는 방법🎜🎜배열 요소의 접두사가 숫자이고 접미사가 문자열인 경우 이러한 요소를 숫자 크기별로 정렬하려면 몇 가지 변경이 필요합니다. 익명 함수의 매개변수를 처리합니다. 🎜rrreee🎜출력 결과: 🎜🎜JS의 특정 규칙에 따라 배열 요소를 정렬하는 방법 🎜🎜🎜방법 3: reverse() 메서드 사용🎜🎜🎜배열 요소를 작은 것에서 큰 것(또는 큰 것에서 작은 것)으로 정렬하고 싶지만 역순으로 정렬하고 싶은 이유는 무엇입니까🎜 ? 그런 다음 reverse() 메서드를 사용할 수 있습니다. 🎜🎜reverse() 메서드는 배열 요소의 순서를 바꿀 수 있습니다. 이 메서드에는 매개 변수가 필요하지 않으며 array object.reverse()만 필요합니다. 🎜rrreee🎜출력 결과: 🎜🎜🎜🎜🎜🎜설명: 🎜🎜🎜🎜sort() 및 reverse() 메서드는 모두 새 배열을 만드는 대신 원본 배열에서 작동하므로 원본 배열이 변경됩니다. 🎜🎜그렇습니다. 필요하다면 다음을 시청하세요. 🎜javascript 비디오 튜토리얼🎜🎜

위 내용은 JS의 특정 규칙에 따라 배열 요소를 정렬하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿