JavaScript 陣列排序 與 求最大值

唯纞&瑞、發表於2020-12-10
//陣列排序(升序)
var arr1 = [1, 5, 99, 5, 6, 88, 23, 86, 11, 55];
for(var i = 0; i < arr1.length;i++){
	for(var j = i+1; j < arr1.length;j++){
		if(arr1[i] > arr[j]){
			var tmp = arr1[j];
             arr1[j] = arr1[k];
             arr1[k] = tmp;
		}
	}
}
console.log(arr1);

//陣列排序封裝
/**
    * [{}] 資料排序
    * @param {Array} arr 
    * @param {String} key 
    * @param {Boolean} flag 
     */
    function sort(array,key,flag){
        //key 告訴函式,用什麼進行比較
        if(flag){
            for(var i = 0;i < array.length;i++){
            for(var j = i+1;j < array.length;j++){
            var arr_i = Number(array[i][key])
            var arr_j = Number(array[j][key])
            if(arr_i > arr_j){
                var tmp = array[i];
                array[i] = array[j]
                array[j] = tmp
            }
        }
    }
        }else{
            for(var i = 0;i < array.length;i++){
        for(var j = i+1;j < array.length;j++){
            var arr_i = Number(array[i][key])
            var arr_j = Number(array[j][key])
            if(arr_i < arr_j){
                var tmp = array[i];
                array[i] = array[j]
                array[j] = tmp
            }
        }
    }
        }
        return array
    }
    sort(arr,"age",false)
    console.log(arr);

求最大值:

//方式一:
var max = Math.max(1,2,5,6,55,7,8,9,70)
        console.log(max);

var arr = [1,2,5,6,55,7,8,9,70];
var max = arr[0];
for(var i = 0; i < arr.length;i++){
	max = Math.max(max.arr[i]);
}
console.log(max);
//方式二:
var max = arr.reduce(function(item,index){
	return Math.max(item,index)
})
console.log(max);

//方式三:
var arr1 = [1,22,5,6,55,7,8,9,70];
arr1.sort(function(item,index){
	/*  
       a-b:升序
       b-a:降序
       注意 number 型別排序,如果是字串,更具第一個的編碼值大小進行降序
  */
  return a-b
})
console.log(arr1); 

//方式三:(se6方法)
var arr2 = [1,22,5,6,55,7,8,9,70];
var max1 = Math.max(...arr2);
console.log(max1);

相關文章