Last active
August 29, 2015 14:01
-
-
Save jikeytang/7f8667dafbd92cc35ff7 to your computer and use it in GitHub Desktop.
[ Javascript ] - 20140521-题目2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,其它位置的保持不变,最后输出数组。 | |
回复时注意加上下面这句话,才会有语法高亮或格式缩进。 | |
```javascript |
题目已修改。按照原来的题目:
[1,8,3,4,7].sort().reverse();
这样就可以了。
//想不出什么好方法。
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]);
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]));
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])
// 用数组的新方法 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]);
赞一个
var max = Math.max.apply(null, a);
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])
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 )
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
有歧义,还是我没有理解题目