Pengurutan Array JavaScript
- Halaman Sebelumnya Pencarian Array JS
- Halaman Berikutnya Iterasi Array JS
sort()
Metode ini adalah salah satu metode array yang paling kuat.
Pengurutan array
sort()
Metode untuk mengurutkan array berdasarkan abjad:
Contoh
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // Mengurutkan elemen dalam fruits
Balikkan array
reverse()
Metode ini membalikkan elemen di dalam array.
Anda dapat menggunakannya untuk mengurutkan array secara descending:
Contoh
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // Mengurutkan elemen dalam fruits fruits.reverse(); // Balikkan urutan elemen
pengurutan angka
Secara defaultsort()
Fungsi mengurutkanstringatur urutan nilai.
Fungsi ini sangat cocok untuk string ("Apple" akan berada di depan "Banana").
Meskipun demikian, jika angka diurutkan sebagai string, "25" lebih besar daripada "100", karena "2" lebih besar daripada "1".
Karena itusort()
Metode ini dapat menghasilkan hasil pengurutan yang salah saat mengurutkan angka.
Kami melaluiFungsi rasioUntuk memperbaiki masalah ini:
Contoh
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b});
Gunakan teknik yang sama untuk mengurutkan array secara descending:
Contoh
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a});
Fungsi rasio
Tujuannya adalah untuk menentukan urutan pengurutan lain.
Fungsi pembanding harus mengembalikan nilai negatif, nol, atau positif, yang bergantung pada parameter:
function(a, b){return a-b}
Ketika sort()
Fungsi membandingkan dua nilai, akan mengirimkan nilai ke fungsi pembanding, dan mengurutkan nilai berdasarkan nilai yang kembali (negatif, nol, atau positif).
Contoh:
Ketika membandingkan 40 dan 100,sort()
Metode ini memanggil fungsi pembanding function(40,100).
Fungsi ini menghitung 40-100, lalu kembalikan -60 (nilai negatif).
Fungsi pengurutan akan menempatkan 40 di urutan yang lebih rendah daripada 100.
Anda dapat menggunakan kode potongan di bawah ini untuk menguji pengurutan angka dan huruf:
<button onclick="myFunction1()">Atur urutan huruf</button> <button onclick="myFunction2()">Atur urutan angka</button> <p id="demo"></p> <script> var points = [40, 100, 1, 5, 25, 10]; document.getElementById("demo").innerHTML = points; function myFunction1() { points.sort(); document.getElementById("demo").innerHTML = points; } function myFunction2() { points.sort(function(a, b){return a - b}); document.getElementById("demo").innerHTML = points; } </script>
以随机顺序排序数组
Contoh
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return 0.5 - Math.random()});
查找最高(或最低)的数组值
JavaScript 不提供查找数组中最大或最小数组值的内建函数。
不过,在对数组进行排序之后,您能够使用索引来获得最高或最低值。
升序排序:
Contoh
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b}); // 现在 points[0] 包含最低值 // 而 points[points.length-1] 包含最高值
降序排序:
Contoh
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a}); // 现在 points[0] 包含最高值 // 而 points[points.length-1] 包含最低值
如果您仅仅需要找到最高或最低值,对整个数组进行排序是效率极低的方法。
对数组使用 Math.max()
您可以使用 Math.max.apply
来查找数组中的最高值:
Contoh
function myArrayMax(arr) { return Math.max.apply(null, arr); }
Math.max.apply([1, 2, 3])
等于 Math.max(1, 2, 3)
。
对数组使用 Math.min()
您可以使用 Math.min.apply
来查找数组中的最低值:
Contoh
function myArrayMin(arr) { return Math.min.apply(null, arr); }
Math.min.apply([1, 2, 3])
等于 Math.min(1, 2, 3)
。
我的 Min / Max JavaScript 方法
最快的解决方法是使用“自制”方法。
此函数遍历数组,用找到的最高值与每个值进行比较:
实例(查找 Max)
function myArrayMax(arr) { var len = arr.length var max = -Infinity; while (len--) { if (arr[len] > max) { max = arr[len]; } } return max; }
此函数遍历数组,用找到的最低值与每个值进行比较:
实例(查找 Min)
function myArrayMin(arr) { var len = arr.length var min = Infinity; while (len--) { if (arr[len] < min) { min = arr[len]; } } return min; }
Pengurutan array objek
Array JavaScript sering mengandung objek:
Contoh
var cars = [ {type:"Volvo", year:2016}, {type:"Saab", year:2001}, {type:"BMW", year:2010}];
Meskipun objek memiliki atribut tipe data yang berbeda:sort()
Metode ini masih dapat digunakan untuk mengurutkan array.
Solusi adalah melalui fungsi pembanding untuk membandingkan nilai atribut:
Contoh
cars.sort(function(a, b){return a.year - b.year});
Pembanding atribut string akan lebih kompleks:
Contoh
cars.sort(function(a, b){ var x = a.type.toLowerCase(); var y = b.type.toLowerCase(); if (x < y) {return -1;} if (x > y) {return 1;} return 0; });
- Halaman Sebelumnya Pencarian Array JS
- Halaman Berikutnya Iterasi Array JS