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
@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