JavaScript taulukko järjestäminen
- Edellinen sivu JS-taulukon hakeminen
- Seuraava sivu JS-taulukon iteraatio
sort()
Menetelmä on yksi vahvimmista taulukkomenetelmistä.
Taulukon järjestäminen
sort()
Menetelmä järjestää taulukon kirjainjärjestykseen:
Esimerkki
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // Järjestä fruits-taulukon elementit
kääntää taulukon
reverse()
metodi kääntää taulukon elementtien järjestyksen.
Voit käyttää sitä järjestääksesi taulukon laskevassa järjestyksessä:
Esimerkki
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // Järjestä fruits-taulukon elementit fruits.reverse(); // Käänteinen järjestys elementtien järjestykseen
lukuja järjestääksesi
Oletetaansort()
Funktio järjestäämerkkijonotjärjestyksessä.
Funktio sopii hyvin merkkijonoille ("Apple" sijoittuu "Banana"-merkkijonon edelle).
Kuitenkin, jos numerot järjestetään merkkijonona, "25" on suurempi kuin "100", koska "2" on suurempi kuin "1".
Tämän vuoksisort()
Metodi tuottaa virheellisiä tuloksia laskettessaan lukuja.
Me käytämmeVertailufunktiokorjataksesi tämän ongelman:
Esimerkki
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b});
Käytä samaa taktiikkaa järjestääksesi taulukon laskevassa järjestyksessä:
Esimerkki
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a});
Vertailufunktio
Vertailufunktion tarkoitus on määritellä toinen järjestysjärjestys.
Vertailufunktio tulisi palauttaa negatiivisen, nollan tai positiivisen arvon riippuen parametreista:
function(a, b){return a-b}
Kun sort()
Funktio lähettää kaksi arvoa vertailufunktiolle ja järjestää arvot sen mukaan, mitä arvoa se palauttaa (negatiivinen, nolla tai positiivinen arvo).
Esimerkki:
Kun verrataan 40 ja 100:sort()
Metodi kutsuu vertailufunktiota function(40,100).
Funktio laskee 40-100 ja palauttaa -60 (negatiivinen arvo).
Järjestämisfunktio asettaa 40 arvoksi, joka on pienempi kuin 100.
Voit käyttää seuraavaa koodikappaletta testata arvojen ja kirjainjärjestystä:
<button onclick="myFunction1()">Järjestä kirjainollaan</button> <button onclick="myFunction2()">Järjestä numerollaan</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>
Järjestä taulukko satunnaisessa järjestyksessä
Esimerkki
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return 0.5 - Math.random()});
Etsi suurin (tai pienin) taulukon arvo
JavaScript ei tarjoa sisäänrakennettua funktiota taulukon suurimman tai pienimmän arvon etsimiseen.
Kun olet järjestänyt taulukon, voit käyttää indeksejä saadaksesi suurimman tai pienimmän arvon.
Nouseva järjestäminen:
Esimerkki
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b}); // Nyt points[0] sisältää pienimmän arvon // points[points.length-1] sisältää suurimman arvon
Laskevaiheen järjestäminen:
Esimerkki
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a}); // Nyt points[0] sisältää suurimman arvon // points[points.length-1] sisältää pienimmän arvon
Jos tarvitset vain löytää suurimman tai pienimmän arvon, koko taulukon järjestäminen on erittäin tehottomaa tapaa.
Käytä Math.max() taulukon kanssa
Voit käyttää Math.max.apply
Etsi taulukon suurin arvo:
Esimerkki
function myArrayMax(arr) { return Math.max.apply(null, arr); }
Math.max.apply([1, 2, 3])
on Math.max(1, 2, 3)
.
Käytä Math.min() taulukon kanssa
Voit käyttää Math.min.apply
Etsi taulukon pienin arvo:
Esimerkki
function myArrayMin(arr) { return Math.min.apply(null, arr); }
Math.min.apply([1, 2, 3])
on Math.min(1, 2, 3)
.
Min / Max JavaScript -menetelmäni
Nopein ratkaisu on käyttää "omaa" menetelmää.
Tämä funktio käy läpi taulukon ja vertailee löytämäänsä suurinta arvoa jokaisen arvon kanssa:
Esimerkki (etsi Max)
function myArrayMax(arr) { var len = arr.length var max = -Infinity; while (len--) { if (arr[len] > max) { max = arr[len]; } } return max; }
Tämä funktio käy läpi taulukon ja vertailee löytämäänsä pienintä arvoa jokaisen arvon kanssa:
Esimerkki (etsi Min)
function myArrayMin(arr) { var len = arr.length var min = Infinity; while (len--) { if (arr[len] < min) { min = arr[len]; } } return min; }
Järjestä objekti-taulukko
JavaScript-taulukot sisältävät usein objekteja:
Esimerkki
var cars = [ {type:"Volvo", year:2016}, {type:"Saab", year:2001}, {type:"BMW", year:2010}];
Vaikka objektit voivat olla eri tyyppisiä tietoja omaavista ominaisuuksista:sort()
Tämä menetelmä voidaan edelleen käyttää taulukon järjestämiseen.
Ratkaisu on käyttää vertailufunktiota ominaisuuksien vertailuun:
Esimerkki
cars.sort(function(a, b){return a.year - b.year});
Vertaile string-ominaisuuksia voi olla hieman monimutkaisempaa:
Esimerkki
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; });
- Edellinen sivu JS-taulukon hakeminen
- Seuraava sivu JS-taulukon iteraatio