首页 > 代码库 > 返回数组中的最大值和删除数组重复值-排序

返回数组中的最大值和删除数组重复值-排序

//数组中最大值
function getMax(arr){
//取该数组第一个值为最大值
var max=arr[0];
for(var i=0;i<arr.length;i++){
if(arr[i]>max){
max=arr[i]
}
}
return max;
}

console.log(getMax([2,98,10,88]))

/*--------------------------------------------------------------------*/
//删除数组重复值
function shift(arr){
var newArr=[]; //定义一个新数组来存放去掉重复值后的新数组
for(var i=0;i<arr.length;i++){
if(newArr.indexOf(arr[i])==-1)//新数组中没找到对应的值,则存入新数组,反之不存入
newArr.push(arr[i])
}
return newArr;
}
console.log(shift([1,2,9,1,3,5,3]))

/*--------------------------------------------------------------------*/
//[方法1]数组去重,并排序
function shiftAndSort(arr){
var xinarr=[];
for(var i=0;i<arr.length;i++){
if(xinarr.indexOf(arr[i])==-1){
xinarr.push(arr[i])
}
}
return xinarr.sort(function(a,b){return b-a});
}
console.log(shiftAndSort([1,2,9,1,3,5,3]))


/*--------------------------------------------------------------------*/
//【方法2】数组去重,并排序
function shiftAndSort(arr){
var sinarr=[];
for(var i=0;i<arr.length;i++){
if(sinarr.indexOf(arr[i])==-1){
sinarr.push(arr[i])
}
}
for(var r=0;r<sinarr.length;r++){//冒泡排序
for(var j=0;j<sinarr.length-r;j++){
if(sinarr[j]>sinarr[j+1]){
sinarr[j]=[(sinarr[j+1]),(sinarr[j+1]=sinarr[j])][0];
}
}
}
return sinarr;
}
console.log(shiftAndSort([1,2,9,1,3,5,3]))

/*--------------------------------------------------------------------*/

//【方法3】数组去重,并排序为数组对象添加一个方法unique

Array.prototype.unique=function(){
var n=[];
for(var i=0;i<this.length;i++){
//当前数组中的i位置的值已经保存在临时数组n中,那么跳过,
//反之把当前项追加到临时数组n里
if(n.indexOf(this[i])==-1){
n.push(this[i])
}
}
return n;//数组反转升序排列
}
var arr3=[1,2,2,3,3,4,4,5,5,6,1,9,3,2,25,4,99]
console.log(arr3.unique())//[ 1, 2, 3, 4, 5, 6, 9, 25 ]



//创建一个新的数组存放结果,再创建一个空对象,for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到新建立的对象中。
Array.prototype.unique2 = function(){ //效率高
var res = [];
var json = {};
for(var i = 0; i < this.length; i++){
if(!json[this[i]]){
res.push(this[i]);
json[this[i]] = 1;
}
}
return res;
}

console.log(arr3.unique2())//[ 1, 2, 3, 4, 5, 6, 9, 25, 99 ]

返回数组中的最大值和删除数组重复值-排序