Array.sort
코어 포인트 Array.sort
Array.sort
메소드 또는 확장 연산자를 사용하여 새 배열 인스턴스를 생성하고 정렬 할 수 있습니다.
Array.sort
Array.slice
매개 변수를 허용합니다. javaScript로 객체 배열을 정렬하는 방법
Array.sort
메소드를 사용하십시오. 비교 함수는 규칙을 적용하고 사용자 정의 논리에 따라 배열을 정렬합니다. 그들은 우리가 문자열, 정수, 날짜 또는 기타 사용자 정의 속성으로 객체 배열을 정렬 할 수있게합니다. 이 기사의 뒷부분에서 비교 기능이 어떻게 작동하는지 설명 할 것입니다.
const foo = [9, 1, 4, 'zebroid', 'afterdeck']; foo.sort(); // 返回 [ 1, 4, 9, 'afterdeck', 'zebroid' ] const bar = [5, 18, 32, new Set, { user: 'Eleanor Roosevelt' }]; bar.sort(); // 返回 [ 18, 32, 5, { user: 'Eleanor Roosevelt' }, Set {} ]
const foo = [9, 1, 4, 'zebroid', 'afterdeck'];
foo.sort(); // 返回 [ 1, 4, 9, 'afterdeck', 'zebroid' ]
const bar = [5, 18, 32, new Set, { user: 'Eleanor Roosevelt' }];
bar.sort(); // 返回 [ 18, 32, 5, { user: 'Eleanor Roosevelt' }, Set {} ]
const singers = [
{ name: 'Steven Tyler', band: 'Aerosmith', born: 1948 },
{ name: 'Karen Carpenter', band: 'The Carpenters', born: 1950 },
{ name: 'Kurt Cobain', band: 'Nirvana', born: 1967 },
{ name: 'Stevie Nicks', band: 'Fleetwood Mac', born: 1948 },
];
function compare(a, b) {
// 使用 toUpperCase() 忽略字符大小写
const bandA = a.band.toUpperCase();
const bandB = b.band.toUpperCase();
let comparison = 0;
if (bandA > bandB) {
comparison = 1;
} else if (bandA < bandB) {
comparison = -1;
}
return comparison;
}
singers.sort(compare);
/* 返回 [
{ name: 'Steven Tyler', band: 'Aerosmith', born: 1948 },
{ name: 'Stevie Nicks', band: 'Fleetwood Mac', born: 1948 },
{ name: 'Kurt Cobain', band: 'Nirvana', born: 1967 },
{ name: 'Karen Carpenter', band: 'The Carpenters', born: 1950 }
] */
위 코드에서 <🎜 🎜> 메소드는 지정된 속성이 각 객체에 정의되어 있고 프로토 타입 체인을 통해 상속되지 않은지 확인하는 데 사용됩니다. 두 객체 모두에서 정의되지 않으면 함수는 0을 반환하여 정렬 순서가 변경되지 않은 상태로 유지됩니다 (즉, 객체는 서로에 대해 변경되지 않음). <p>
<🎜 🎜> </p> 연산자는 또한 속성 값의 유형을 확인하는 데 사용됩니다. 이를 통해 함수는 배열을 정렬하는 올바른 방법을 결정할 수 있습니다. 예를 들어, 지정된 속성의 값이 문자열 인 경우 <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>function compare(a, b) {
// ...
// 通过乘以 -1 反转返回值
return comparison * -1;
}</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> 메소드는 모든 문자를 대문자로 변환하는 데 사용되므로 정렬 할 때 문자 케이스가 무시됩니다. <p>
<the> 다른 데이터 유형에 맞게 위의 기능을 조정할 수 있으며 스크립트에 필요한 다른 요구 사항이 있습니다. </p>
<p> <<> 인기있는 배열 분류 라이브러리 <code>sort()
<🎜 🎜>
는 새 배열을 반환하는 대신 종류의 배열을 변경 (수정) 할 방법 중 하나입니다. 이를 피하기 위해 배열의 새 인스턴스를 만들고 수정할 수 있습니다. 배열 메소드 또는 확장자 구문을 사용하여 배열 사본을 작성하는 데 사용할 수 있습니다. Array.sort
const foo = [9, 1, 4, 'zebroid', 'afterdeck']; foo.sort(); // 返回 [ 1, 4, 9, 'afterdeck', 'zebroid' ] const bar = [5, 18, 32, new Set, { user: 'Eleanor Roosevelt' }]; bar.sort(); // 返回 [ 18, 32, 5, { user: 'Eleanor Roosevelt' }, Set {} ]
<,> 또는 확장 연산자를 사용하여 동일한 효과를 얻을 수 있습니다.
Array.slice
두 경우 모두 출력은 동일하며 객체 배열을 정렬하기 전에 사용할 수 있습니다.
const singers = [ { name: 'Steven Tyler', band: 'Aerosmith', born: 1948 }, { name: 'Karen Carpenter', band: 'The Carpenters', born: 1950 }, { name: 'Kurt Cobain', band: 'Nirvana', born: 1967 }, { name: 'Stevie Nicks', band: 'Fleetwood Mac', born: 1948 }, ];
메소드를 사용하여 코드를 구성 할 수 있습니다.
이 메소드는 문자열이 정렬 순서의 주어진 문자열과 전, 후 또는 동일한 지 여부를 나타내는 숫자를 반환합니다. 사례에 민감하지 않은 배열 정렬을 허용합니다function compare(a, b) { // 使用 toUpperCase() 忽略字符大小写 const bandA = a.band.toUpperCase(); const bandB = b.band.toUpperCase(); let comparison = 0; if (bandA > bandB) { comparison = 1; } else if (bandA < bandB) { comparison = -1; } return comparison; } singers.sort(compare); /* 返回 [ { name: 'Steven Tyler', band: 'Aerosmith', born: 1948 }, { name: 'Stevie Nicks', band: 'Fleetwood Mac', born: 1948 }, { name: 'Kurt Cobain', band: 'Nirvana', born: 1967 }, { name: 'Karen Carpenter', band: 'The Carpenters', born: 1950 } ] */
function compare(a, b) { // ... // 通过乘以 -1 反转返回值 return comparison * -1; }
< -> 그게 IT- 기본 JavaScript를 사용하여 객체를 분류하는 짧은 소개입니다. 많은 라이브러리 가이 동적 분류 기능을 제공하지만 볼 수 있듯이이 기능을 직접 구현하는 것은 어렵지 않습니다. 또한 무대 뒤에서 무슨 일이 일어나고 있는지 아는 것이 도움이됩니다.
위 내용은 Sort () 메소드와 함께 javaScript의 객체 배열을 정렬합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!