1. 程式人生 > >JS裡的居民們6-陣列排序

JS裡的居民們6-陣列排序

編碼

var arr = [43, 54, 4, -4, 84, 100, 58, 27, 140]; 

將上面陣列分別按從大到小以及從小到大進行排序後在console中輸出

var arr = ['apple', 'dog', 'cat', 'car', 'zoo', 'orange', 'airplane']; 

將上面陣列分別按字母順序a-z及z-a進行排序,在console中輸出

var arr = [[10, 14], [16, 60], [7, 44], [26, 35], [22, 63]]; 

將上面的二維陣列,按照每個元素中第二個數從大到小的順序進行排序輸出,輸出結果應該為:

[[22, 63], [16, 60], [7, 44], [26, 35], [10, 14]]

var arr = [
    {
        id: 1,
        name: 'candy',
        value: 40 }, { id: 2, name: 'Simon', value: 50 }, { id: 3, name: 'Tony', value: 45 }, { id: 4, name: 'Annie', value: 60 } ]; 

將上面陣列分別按元素物件的value值從小到大進行排序後輸出

  1 <!DOCTYPE html>
  2
<html> 3 4 <head> 5 <meta charset="utf-8" /> 6 <title>JS裡的居民們8-排序</title> 7 </head> 8 9 <body> 10 <script> 11 function compareNumbers(a, b) { 12 return a - b; 13 } 14 var arr1 = [43, 54,
4, -4, 84, 100, 58, 27, 140]; 15 //將上面陣列分別按從大到小以及從小到大進行排序後在console中輸出 16 console.log("arr1從小到大排序:" + arr1.sort((a, b) => a - b)); 17 console.log("arr1從小到大排序:" + arr1.sort(function (a, b) { 18 return a - b; 19 })) 20 console.log("arr1從大到小排序:" + arr1.sort((a, b) => a - b).reverse()); 21 console.log("arr1從大到小排序:" + arr1.sort((a, b) => b - a)); 22 23 var arr2 = ['apple', 'dog', 'cat', 'car', 'Zoo', 'orange', 'airplane']; 24 //將上面陣列分別按字母順序a-z及z-a進行排序,在console中輸出 25 console.log("arr2從a-z排序:" + arr2.sort()); //與字串相加,成為字串打印出來 26 console.log("arr2從z-a排序:"); //大小寫有差別!!注意 27 console.log(arr2.sort().reverse()); //仍為陣列物件打印出來 28 var arr3 = [ 29 [10, 14], 30 [16, 60], 31 [7, 44], 32 [26, 35], 33 [22, 63] 34 ]; 35 //將上面的二維陣列,按照每個元素中第二個數從大到小的順序進行排序輸出,輸出結果應該為: 36 console.log("arr3按第二個數從大到小排序:"); 37 console.log(arr3.sort((a, b) => b[1] - a[1])); 38 console.log("arr3按第一個數從大到小排序:"); 39 console.log(arr3.sort((a, b) => b[0] - a[0])); 40 //[[22, 63], [16, 60], [7, 44], [26, 35], [10, 14]] 41 42 var arr4 = [{ 43 id: 1, 44 name: 'candy', 45 value: 40 46 }, { 47 id: 2, 48 name: 'Simon', 49 value: 50 50 }, { 51 id: 3, 52 name: 'Tony', 53 value: 45 54 }, { 55 id: 4, 56 name: 'Annie', 57 value: 60 58 }]; 59 //將上面陣列分別按元素物件的value值從小到大進行排序後輸出 60 arr4.sort(function (a, b) { 61 var valueA = a.value; 62 var valueB = b.value; 63 if (valueA < valueB) { 64 return -1; 65 } 66 if (valueA > valueB) { 67 return 1; 68 } 69 return 0; 70 }) 71 console.log("按元素物件的value值從小到大進行排序:") 72 console.log(arr4); 73 74 arr4.sort(function (a, b) { 75 var valueA = a.value; 76 var valueB = b.value; 77 if (valueA < valueB) { 78 return 1; 79 } 80 if (valueA > valueB) { 81 return -1; 82 } 83 return 0; 84 }) 85 console.log("按元素物件的value值從大到小進行排序:") 86 console.log(arr4); 87 88 arr4.sort(function (a, b) { 89 var nameA = a.name.toUpperCase(); //忽略大小寫進行排序,按字母來 90 var nameB = b.name.toUpperCase(); 91 if (nameA < nameB) { 92 return -1; 93 } 94 if (nameA > nameB) { 95 return 1; 96 } 97 return 0; 98 }) 99 console.log("按元素物件的name值從a-z進行排序:") 100 console.log(arr4); 101 </script> 102 </body> 103 104 </html>