Rumah hujung hadapan web tutorial js Javascript数组的排序 sort()方法和reverse()方法_javascript技巧

Javascript数组的排序 sort()方法和reverse()方法_javascript技巧

May 16, 2016 pm 05:52 PM
sort Susun susunan

其中:

1.JavaScript的sort()中如果没有指定比较函数,则默认会按照字符的编码顺序进行升序排序。也就是说如果我们想要对数值进行排序得到的不一定是我们想要的结果。

2.Javascript的reverse()将数组中的元素逆序。

先看看上面的第一点,如果有一个数组arr=[1,6,3,7,9],使用arr.sort()后,数组的顺序为1,3,6,7,9,得到了我们想要的结果。

再看看下面的一个数组排序:arr=[3,1,16,34,30],如果执行arr.sort()后是不是还是会得到我们想要的1,3,16,30,34呢?

执行后我们发现结果为:1,16,3,30,34,显然结果不是我们想要的。实际上,sort方法将上面的数值按照字符串方式排序了,也就是说和数组arr1=['3','1','16','34','30']的排序结果一致。

代码如下:

复制代码 代码如下:

var arr=[3,1,16,34,30];
var arr1=['3','1','16','34','30'];
alert(arr.sort()); // 1,16,3,30,34
alert(arr1.sort()); // 1,16,3,30,34


那么如果我们想要得到正确的结果:1,3,16,30,34 应该怎么去做呢?

查询javascript手册,手册中的说明如下:

定义和用法

sort() 方法用于对数组的元素进行排序。

语法

arrayObject.sort(sortby)参数 描述
sortby 可选。规定排序顺序。必须是函数。

返回值

对数组的引用。请注意,数组在原数组上进行排序,不生成副本。

说明

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
=====================================

由以上说明我们可以了解到,如果要按照数值进行排序,那么就要提供一个比较函数。一般常见的比较函数如下:
复制代码 代码如下:

function sortArr(m,n){
if(mreturn -1;//小于,返回-1
else if(m>n)
return 1;//大于,返回1
else return 0;//等于,返回0
}

精简后可以写成如下两种形式:
复制代码 代码如下:

function sortArr(m,n){
return m-n;
}

复制代码 代码如下:

function sortArr(m,n){
return m>n?1:(m}

然后执行arr.sort(sortArr),发现可以得到我们想要的结果:1,3,16,30,34.也就说将数组按照整型数值进行了升序排序。
这样的话新的问题就来了,如果我们想要对数组进行降序排序怎么做呢?

有一思路就是改变sortArr函数的返回值,如果mn时返回负值,m=n时返回0。这样就可以了。

你可以写两个函数,一个升序,一个降序。然后根据不同的需要调用不同的函数就可以了。

此外我们还可以调用上面提到的另一个函数reverse()来轻松的实现,当我们进行升序排序后,然后数组在调用reverse()方法将数组逆序,这样就可以实现数组的降序排序了。

代码如下:
复制代码 代码如下:

arr.sort(sortArr).reverse();

总结:这里主要介绍了Javascript中数组的排序,由于默认按照字符串排序,要实现按照其他形式的规则排序就要自己定义比较函数了。
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara melaksanakan pengisihan seret dan lepas dan operasi seret dan lepas dalam uniapp Cara melaksanakan pengisihan seret dan lepas dan operasi seret dan lepas dalam uniapp Oct 19, 2023 am 09:39 AM

Uniapp ialah rangka kerja pembangunan merentas platform Keupayaan merentas hujungnya yang berkuasa membolehkan pembangun membangunkan pelbagai aplikasi dengan cepat dan mudah. Ia juga sangat mudah untuk melaksanakan operasi pengisihan seret dan lepas dan seret dan lepas dalam Uniapp, dan ia boleh menyokong operasi seret dan lepas pelbagai komponen dan elemen. Artikel ini akan memperkenalkan cara menggunakan Uniapp untuk melaksanakan pengisihan drag-and-drop dan operasi drag-and-drop, serta memberikan contoh kod khusus. Fungsi pengisihan seret dan lepas adalah sangat biasa dalam banyak aplikasi Contohnya, ia boleh digunakan untuk melaksanakan pengisihan seret dan lepas senarai, seret dan lepaskan ikon, dsb. Di bawah kami senaraikan

Terokai prinsip asas dan pemilihan algoritma bagi fungsi isihan C++ Terokai prinsip asas dan pemilihan algoritma bagi fungsi isihan C++ Apr 02, 2024 pm 05:36 PM

Lapisan bawah fungsi C++ sort menggunakan isihan gabungan, kerumitannya ialah O(nlogn), dan menyediakan pilihan algoritma pengisihan yang berbeza, termasuk isihan pantas, isihan timbunan dan isihan stabil.

Kaedah pengisihan tatasusunan pantas yang mengekalkan nama kunci dalam PHP Kaedah pengisihan tatasusunan pantas yang mengekalkan nama kunci dalam PHP May 02, 2024 pm 03:06 PM

Kaedah pengisihan tatasusunan pantas dalam PHP yang mengekalkan nama kunci: Gunakan fungsi ksort() untuk mengisih kekunci. Gunakan fungsi uasort() untuk mengisih menggunakan fungsi perbandingan yang ditentukan pengguna. Kes praktikal: Untuk mengisih tatasusunan ID pengguna dan skor mengikut skor sambil mengekalkan ID pengguna, anda boleh menggunakan fungsi uasort() dan fungsi perbandingan tersuai.

Isih tatasusunan menggunakan fungsi Array.Isih dalam C# Isih tatasusunan menggunakan fungsi Array.Isih dalam C# Nov 18, 2023 am 10:37 AM

Tajuk: Contoh menggunakan fungsi Array.Sort untuk mengisih tatasusunan dalam Teks C#: Dalam C#, tatasusunan ialah struktur data yang biasa digunakan dan operasi pengisihan tatasusunan selalunya diperlukan. C# menyediakan kelas Array, yang mempunyai kaedah Isih untuk menyusun tatasusunan dengan mudah. Artikel ini akan menunjukkan cara menggunakan fungsi Array.Sort dalam C# untuk mengisih tatasusunan dan memberikan contoh kod khusus. Pertama, kita perlu memahami penggunaan asas fungsi Array.Sort. Susunan.Jadi

Pengisihan tatasusunan JS: analisis mendalam tentang prinsip kerja dan mekanisme kaedah sort(). Pengisihan tatasusunan JS: analisis mendalam tentang prinsip kerja dan mekanisme kaedah sort(). Dec 28, 2023 am 11:47 AM

Untuk memahami secara mendalam pengisihan tatasusunan JS: prinsip dan mekanisme kaedah sort(), contoh kod khusus diperlukan Pengenalan: Pengisihan tatasusunan ialah salah satu operasi yang sangat biasa dalam kerja pembangunan bahagian hadapan harian kami. Kaedah pengisihan tatasusunan sort() dalam JavaScript ialah salah satu kaedah pengisihan tatasusunan yang paling biasa digunakan. Walau bagaimanapun, adakah anda benar-benar memahami prinsip dan mekanisme kaedah sort()? Artikel ini akan memberi anda pemahaman yang mendalam tentang prinsip dan mekanisme pengisihan tatasusunan JS, dan memberikan contoh kod khusus. 1. Penggunaan asas kaedah sort().

Panduan untuk menulis algoritma pengisihan tersuai untuk tatasusunan PHP Panduan untuk menulis algoritma pengisihan tersuai untuk tatasusunan PHP Apr 27, 2024 pm 06:12 PM

Bagaimana untuk menulis algoritma pengisihan tatasusunan PHP tersuai? Isih gelembung: Mengisih tatasusunan dengan membandingkan dan menukar elemen bersebelahan. Isih pilihan: Pilih elemen terkecil atau terbesar setiap kali dan tukarkannya dengan kedudukan semasa. Isih sisipan: Masukkan unsur satu demi satu ke dalam bahagian yang diisih.

Bagaimana untuk mengekalkan nama kunci selepas menyusun tatasusunan PHP mengikut nilai? Bagaimana untuk mengekalkan nama kunci selepas menyusun tatasusunan PHP mengikut nilai? May 02, 2024 pm 04:09 PM

Cara mengisih tatasusunan mengikut nilai dalam PHP sambil mengekalkan nama kunci ialah menggunakan fungsi usort() untuk mengisih tatasusunan mengikut nilai. Lulus fungsi tanpa nama kepada fungsi usort() sebagai fungsi perbandingan, yang mengembalikan perbezaan nilai elemen. usort() akan mengisih tatasusunan mengikut fungsi tanpa nama sambil mengekalkan nama kunci tidak berubah.

Bagaimana untuk mengisih senarai menggunakan fungsi List.Sort dalam C# Bagaimana untuk mengisih senarai menggunakan fungsi List.Sort dalam C# Nov 17, 2023 am 10:58 AM

Cara mengisih senarai menggunakan fungsi List.Isih dalam C# Dalam bahasa pengaturcaraan C#, kita selalunya perlu mengisih senarai. Fungsi Isih kelas Senarai ialah alat berkuasa yang direka untuk tujuan ini. Artikel ini akan memperkenalkan cara menggunakan fungsi List.Isih dalam C# untuk mengisih senarai dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menggunakan fungsi ini dengan lebih baik. Fungsi List.Sort ialah fungsi ahli kelas List, digunakan untuk mengisih elemen dalam senarai. Fungsi ini menerima

See all articles