Skip to content

Instantly share code, notes, and snippets.

@jikeytang
Last active August 29, 2015 14:01
Show Gist options
  • Save jikeytang/7f8667dafbd92cc35ff7 to your computer and use it in GitHub Desktop.
Save jikeytang/7f8667dafbd92cc35ff7 to your computer and use it in GitHub Desktop.
[ Javascript ] - 20140521-题目2
输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,其它位置的保持不变,最后输出数组。
回复时注意加上下面这句话,才会有语法高亮或格式缩进。
```javascript
@jikeytang
Copy link
Author

题目已修改。按照原来的题目:

[1,8,3,4,7].sort().reverse();

这样就可以了。

@wzc602003869
Copy link

//想不出什么好方法。
 function test(arr1){
            var arr2=arr1.slice(0);
            arr2.sort(function(a,b){
                return a-b
            });
            var in1=arr1.indexOf(arr2[0]);
            var in2=arr1.indexOf(arr2[arr2.length-1]);
          var remove= arr1.splice(0,1,arr2[arr2.length-1]);
            arr1.splice(in1,1,remove);
            remove= arr1.splice(arr1.length-1,1,arr2[0]);
            arr1.splice(in2,1,remove);
            alert(arr1);
        }
            test([2,1,4,6,3,1,2]);

@caigou
Copy link

caigou commented May 21, 2014

function sortArr(arr){

    var iMin=iMax=arr[0];
    var maxIndex=minIndex=0;

    for(var i=0; i<arr.length;i++){
        if(arr[i]<iMin){
            iMin=arr[i];    
            minIndex=i;
        }

        if(arr[i]>iMax){
            iMax=arr[i];    
            maxIndex=i;
        }
    }

    var oTmpMax=arr[0];
    arr[0]=arr[maxIndex];
    arr[maxIndex]=oTmpMax;

    var oTmpMin=arr[arr.length-1];
    arr[arr.length-1]=arr[minIndex];
    arr[minIndex]=oTmpMin;

    return arr;
}

console.log(sortArr([4,1,3,5,9,2,13,5]));

@mailzwj
Copy link

mailzwj commented May 21, 2014

function diySort(arr){
    var nArr = arr.slice(0), len = arr.length;
    arr = arr.sort();
    nArr = nArr.join("|").replace(arr[len - 1], "").replace(arr[0], "");
    nArr = nArr.replace(/(^\|+)|(\|+$)/, "").split(/\|\|?/);
    nArr.push(arr[0]);
    nArr.unshift(arr[len - 1]);
    return nArr;
}
diySort([1,3,4,5,3,2,7,6,3])

@sunnylost
Copy link

// 用数组的新方法 indexOf
function sort(a) {
    var end = a.length - 1;

    var max = Math.max.apply(null, a);
    var min  = Math.min.apply(null, a);

    a[a.indexOf(max)] = a[0];
    a[0] = max;
    a[a.indexOf(min)] = a[end];
    a[end] = min;

    console.log(a);
}

sort([5, 2, 34, 52, 66, 21]);

@xianlaioy
Copy link

赞一个

var max = Math.max.apply(null, a);

@jiangtao
Copy link

function switchMaxMin(arr){
    if(arr instanceof Array){
        if(arr.length < 2){
            return arr;
        }else {

            var length = arr.length;
            var max = Math.max.apply(null, arr);
            var maxIndex = arr.indexOf(max);
            arr[maxIndex] = [arr[0], arr[0] = arr[maxIndex]][0];
            var min = Math.min.apply(null, arr);
            var minIndex = arr.indexOf(min);
            arr[minIndex] = [arr[length - 1], arr[length - 1] = arr[minIndex]][0];
            return arr;
        }
    }
}
switchMaxMin([1,5,3,4])

@wsgouwan
Copy link

        var arr = [20,32,10,421,510,230,4120,5412,541,41],
            $max_index,
            $min_index,
            $max = Math.max.apply([],arr),
            $min = Math.min.apply([],arr);
            for( var i = 0; i < arr.length; i ++ ){
                if( arr[i] == $max ){
                    $max_index = i ;
                }
                if( arr[i] == $min ){
                    $min_index = i ;
                }
            };
            arr[$max_index] = arr[0];
            arr[$min_index] = arr[arr.length - 1];
            arr[0] = $max ;
            arr[arr.length - 1] = $min ;
        console.log( arr )

@rambo-panda
Copy link

var get_arr_size = function(_arr){
    var arr = _arr || [1, 4, 3, 5, 7, 5, 2, 3, 4, 7],
        arr_str = arr.join(''),
        max = Math.max.apply(null, arr),
        min = Math.min.apply(null, arr),
        arr_str_clear = arr_str.replace(/,/g, ''),
        max_index = arr_str_clear.indexOf(max),
        min_index = arr_str_clear.indexOf(min);

    return {
        max : {
            index : max_index,
            value : max
        },
        min : {
            index : min_index,
            value : min
        }
    };
};

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment