'I miei metodi JavaScript min / max 'La soluzione piu' veloce e' usare un metodo "fatto in casa". 'Questa funzione esegue il ciclo di un array confrontando ciascun valore con il valore piu' elevato trovato: 'sempio (Trova Max) 'unction myArrayMax(arr) { ' var len = arr.length ' var max = -Infinity; ' while (len--) { ' if (arr[len] > max) { ' max = arr[len]; ' } ' } ' return max; ' } https://www.w3schools.com/js/tryit.asp?filename=tryjs_array_sort_max <!DOCTYPE html> <html> <body> <h2>JavaScript Array Sort</h2> <p>The highest number is <span id="demo"></span>.</p> <script> var points = [40, 100, 1, 5, 25, 10]; document.getElementById("demo").innerHTML = myArrayMax(points); function myArrayMax(arr) { var len = arr.length; var max = -Infinity; while (len--) { if (arr[len] > max) { max = arr[len]; } } return max; } </script> </body> </html> ' oppure ' Questa funzione scorre attraverso un array confrontando ogni valore con il valore piu' basso trovato: 'Esempio (Trova min) 'function myArrayMin(arr) { ' var len = arr.length ' var min = Infinity; ' while (len--) { ' if (arr[len] < min) { ' min = arr[len]; ' } ' } ' return min; '} https://www.w3schools.com/js/tryit.asp?filename=tryjs_array_sort_min <!DOCTYPE html> <html> <body> <h2>JavaScript Array Sort</h2> <p>The lowest number is <span id="demo"></span>.</p> <script> var points = [40, 100, 1, 5, 25, 10]; document.getElementById("demo").innerHTML = myArrayMin(points); function myArrayMin(arr) { var len = arr.length; var min = Infinity; while (len--) { if (arr[len] < min) { min = arr[len]; } } return min; } </script> </body> </html> ' Ordinamento di matrici di oggetti 'Gli array JavaScript spesso contengono oggetti: 'Esempio 'var cars = [ ' {type:"Volvo", year:2016}, ' {type:"Saab", year:2001}, ' {type:"BMW", year:2010} ']; 'Anche se gli oggetti hanno proprieta' di diversi tipi di dati, il sort()metodo puo' essere utilizzato per ordinare l'array. 'La soluzione e' scrivere una funzione di confronto per confrontare i valori delle proprieta': 'Esempio 'cars.sort(function(a, b){return a.year - b.year}); https://www.w3schools.com/js/tryit.asp?filename=tryjs_array_sort_object1 <!DOCTYPE html> <html> <body> <h2>JavaScript Array Sort</h2> <p>Click the buttons to sort car objects on age.</p> <button onclick="myFunction()">Sort</button> <p id="demo"></p> <script> var cars = [ {type:"Volvo", year:2016}, {type:"Saab", year:2001}, {type:"BMW", year:2010} ]; displayCars(); function myFunction() { cars.sort(function(a, b){return a.year - b.year}); displayCars(); } function displayCars() { document.getElementById("demo").innerHTML = cars[0].type + " " + cars[0].year + "<br>" + cars[1].type + " " + cars[1].year + "<br>" + cars[2].type + " " + cars[2].year; } </script> </body> </html> 'Confrontare le proprieta' delle stringhe e' un po 'piu' complesso: 'esempio '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; '}); https://www.w3schools.com/js/tryit.asp?filename=tryjs_array_sort_object2 <!DOCTYPE html> <html> <body> <h2>JavaScript Array Sort</h2> <p>Click the buttons to sort car objects on type.</p> <button onclick="myFunction()">Sort</button> <p id="demo"></p> <script> var cars = [ {type:"Volvo", year:2016}, {type:"Saab", year:2001}, {type:"BMW", year:2010} ]; displayCars(); function myFunction() { 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; }); displayCars(); } function displayCars() { document.getElementById("demo").innerHTML = cars[0].type + " " + cars[0].year + "<br>" + cars[1].type + " " + cars[1].year + "<br>" + cars[2].type + " " + cars[2].year; } </script> </body> </html> |