数组排序方法(去重,随机,比较排序,冒泡排序,函数排序)

一、条件控件(做判断)

if

1.if判断:只能判断条件为真的情况

if(condition){
    //condition==true时执行的代码
}

2.if...else:判断真或者假

if(condition){
    //condition==true时执行的代码
}else{
    //condition==false时执行的代码
}

3.if...else if...else:多重条件判断

if(condition){
    //condition==true执行的代码
}else if(condition2){
    //condition2==true执行的代码
}...[else{
     //以上条件都不成立时执行的代码
}]

4.注意:一个if判断中,最多出现一个else

三元运算符

1.语法格式:condition ? condition==true时执行 : condition==false时执行

2.简化版if...else

switch...case

1.语法格式

switch(变量){
    case 值1:
        //变量===值1执行的代码
        break;  //满足条件后中断代码,不能省略
    case 值2:
        //变量===值2执行的代码
        break;
    ...
    default:
        //变量不等于以上值时执行的代码
}

2.一般用于判断一个变量是否全等于某个值

二、循环控制

1.for循环

for(开始条件;结束条件-循环成立的条件;变化的条件){
    //循环的代码
}

三、其他

1.String():将变量转换为字符串类型

2.Number():将变量转换为数值类型

数组的函数方法:

<script>
var arr = [1,2,3];
var arr2 = ["a","b","c"];
var newArr=arr.concat(arr2,"n");
console.log(newArr);

//1.push()给数组末尾追加元素
newArr.push(4,5,6);
console.log(newArr);

//2.追加元素方法
newArr[newArr.length]=7;
console.log(newArr);

//3.unshift头部添加
newArr.unshift(0);
console.log(newArr);


//4.pop()删除最后一个数据
newArr.pop();
console.log(newArr);


//5.shift()删除数组第一个元素
newArr.shift();
console.log(newArr);


//6.splice():添加或删除元素
//newArr.splice(1);//删除下标 >=1的所有元素
//newArr.splice(1,2);//删除数组中下标为1,开始的两个元素。
newArr.splice(0,0,"e",null);//从下标0开始,添加"e",null。
newArr.splice(1,1,"f",);//从下标1开始删除1个,然后添加“f”。


//7,every():判断数组中每个元素是否符合要求
var arr2 = [11,33,68,35,12,47,69,87,2]
var res = arr2.every(function(val,index,arr){
return val%2 == 1;	//返回每一次的结果
}
);
console.log(res);

//17,.some()数组中只要有一个元素符合,输出turn,全不符合false:
var res3 = newArr.some(function(val){
	return val< 0;
});

//8,filter:()过滤所有元素,满足条件的返回。
var eveArr = arr2.filter(function(val){
	return val%2 == 0;
});console.log(eveArr);


//9.forEach()将数组中的每个值都执行一次回调
arr2.forEach(function(val){
	console.log(val);
});


//10.indexOf():判断元素在不在数组中,从前往后
var index = arr2.indexOf("a");//不在显示-1。
console.log(index);


//11,lastIndexOf()判断元素是否在数组中,从后向前
console.log(arr2.lastIndexOf("a"));//不在显示-1。


//12,isAray()判断是否为数组
console.log(Array.isArray(arr2));


//13,join()将数组中的所有元素使用`sep`连接符组合成一个字符串,默认用`,`
var str = arr2.join("-");
console.log(str);
console.log(arr.join());
console.log(str.split("-"));


//14,map()执行一些操作,返回新数组
console.log(arr2);
var newArr2 = arr2.map(function(val){
	if(val%2){
		return val + 1;
	}else{
		return val + 2;
	}
});
console.log(newArr2);


//15.reverse():翻转数组
console.log(newArr2.reverse());


//16.slice(start,end):将数组中一部分组成新数组
console.log(newArr2.slice(1,7));//将start开始,到end-1结束


//17,.some()数组中只要有一个元素符合,输出turn,全不符合false:
var res3 = newArr2.some(function(val){
	return val< 0;
});


//18.sort()对数组排序,首字升序
var arr3 = [2,5,8,2,4,3,4,9]
arr3.sort();
console.log(arr3);
newArr2.sort(function(a,b){
	return a-b;
});//给一个比较函数做参数
console.log(newArr2);


//19.toString()`:将数组转换为字符串,使用`,`连接


var scores = [[12,2,32],[45,85,23],[1,2,3,]];//二维数组
console.log(scores[1][1]);//85

//console.log(newArr);
</script>

1-100之间奇偶数合

//计算1——100奇数和,偶数和
var i = 1;
var odd =0;
var even =0;
while(i<101){
	if (i%2==0){
	odd +=i;
	}else{
		even +=i
	}
	i++;
}
document.write("奇数和:"+odd);
document.write("偶数和:"+even);

//使用do...while实现1--100之间和
var i = 1;
var sum =0;
do{
	sum+=i
	i++;
}while(i<101);
document.write(sum);

//while和do-while区别
// while先判断再执行;;do-while至少执行一次。
//计算1-100之间的数字之和
// var sum=0;
// var a = Number(prompt("开始数字"));
// var b = Number(prompt("结束数字"));
// for(var a = 1;a<=b;a++){
// 	sum=sum+a;
// }
// document.write(sum);

//for实现金字塔
for(var i = 1; i < 6;i++){
	document.write("<div>");
	for( var j = 1; j <=i; j++){
		
	document.write("┗( ▔, ▔ )┛");}
	document.write("</div>");
}

数组排序,去重,数组函数方法

<script>
	//99乘法表
	// for(var i=1;i<10;i++){
	// 	for(var n=1;n<=i;n++){
	// 		document.write("<a>"+n+'X'+i+'='+i*n+"&emsp;"+"</a>")
	// 	}
	// 	document.write("<br>")
	// }

	//判断平年闰年
	// var n= prompt("请输入年份~~~");
	// if(n%4==0 && n%100!=0 || n%400==0){
	// 	document.write(n+"是闰年~~~~~~")
	// }else{
	// 	document.write(n+"是平年~~~~~")
	// }

	//3.使用`for`循环实现:请用户输入学生的人数,然后依次输入每一位同学的成绩。 输入完毕之后,将总成绩和平均成绩在控制台输出
	// var n = Number(prompt("请输入人数~~~"));
	// var nss=0;
	// for (var i = 1; i <= n; i++) {
	// 	var ns = Number(prompt("请输入成绩~~~"));
	// 	nss += ns;
	// }
	// console.log(nss);
	// document.write("平均成绩为:" + nss / n);

	//1.实现一个数组的元素从小到大排序(冒泡排序,比较排序)
	// var kong;
	// var shu=[5,8,2,1,9,6,2,6];
	// //比较排序
	// for(var i=0;i<shu.length;i++){
	// 	for(var y=i+1;y<shu.length;y++){
	// 		if(shu[i]>shu[y]){
	// 		kong=shu[i];
	// 		shu[i]=shu[y];
	// 		shu[y]=kong;
	// 	}
	// 	}
	// }
	// console.log(shu);

// 	//冒泡排序
// var shu=[5,8,2,1,9,6,2,6];
// 	function mp(val) {
// 		var kong;
// 		for (var i = 0; i < val.length - 1; i++) {
// 			for (var y = 0; y < val.length - i; y++) {
// 				if (val[y] > val[y + 1]) {
// 					kong = val[y];
// 					val[y] = val[y + 1];
// 					val[y + 1] = kong;
// 				}
// 			}
// 		} 
// 		console.log(val);
// 	}
// 	mp(shu);

//取随机几位英文字母
// function getCode(len=5){
//    var code = "";  
//    var str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
//    for(var i = 0; i < len; i++){
//      var key = Math.floor(Math.random()*str.length);
//      code += str.charAt(key);
//    }
//    return code; 
//  }
//  console.log(getCode());

//数组取最大值
//var shu=[5,8,2,1,9,6,2,6];
// var arr=[];
// for(var i=0;i<shu.length;i++){
// 	if(arr<shu[i]){
// 		arr=shu[i]
// 	}
// 	console.log(shu);
// }
// console.log(arr);

//函数做法数组取最大值
// shu.sort(function(a,b){
// 	return a-b;
// });
// console.log(shu.slice(shu.length-1,shu.length));


//自定义函数,要求实现生成一个五位(可以修改)的随机字符串并返回(字符为英文字母)
// function getCode(len=5){
//    var code = "";  
//    var str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
//    for(var i = 0; i < len; i++){
//      var key = Math.floor(Math.random()*str.length);
//      code += str.charAt(key);
//    }
//    return code; 
//  }
//  console.log(getCode());


// 自定义函数,要求实现统计一个数组中每个元素出现的次数,并将结果返回成对象
 // var arr = ['a', 'b', 'c', 'd', 'a', 'd', 'c', 'i'];
 // function getCount(arr) {
 //   var newArr = [];
 //   arr.forEach(function(val) {
 //    if (newArr.indexOf(val) == -1) {
 //     newArr.push(val);
 //    }
 //   });
 //   console.log(newArr)
 //   var res = {};
 //   newArr.forEach(function(val) {
 //    res[val] = arr.filter(function(val2) {
 //     return val == val2;
 //    }).length;//res[a] = 2
 //   })
 //   console.log(res);
 //   return res;
 // }
 // getCount(arr);
 
 //5.比较两个数组,返回两个数组之间的差异   例:[1,2,3,4]  [1,4,5,6] 输出[2,3,5,6]
 	// var arr1 = [1,2,3,4];
 	// var arr2 = [1,4,5,6,6];
 	// //var snm = arr.concat(box);//合成一个数组
 	// function a() {
 	//         return arr1.concat(arr2).filter(function(val, i, arr) {
 	//             return arr.indexOf(val) === arr.lastIndexOf(val);
 	//         });
 	//     }
 	//     console.log(a());
 
 	//5.1相互过滤取新数组,再合并新
 	// var arr1 = [1,2,3,4];
 	// 	var arr2 = [1,4,5,6,6];
 	// 	//过滤arr1
 	// 	var newArr = arr1.filter(function(val){
 	// 		return arr2.indexOf(val) == -1;
 	// 	})
 	// 	//过滤arr2
 	// 	var newArr2 = arr2.filter(function(val){
 	// 		return arr1.indexOf(val) == -1;
 	// 	})
 	// 	//合并新数组
 	// 	var defArr = newArr.concat(newArr2);
 	// 	console.log(defArr);
 
 	//5.2获取两个数组相同元素,然后合并两个数组,后去重
 	var arr1 = [1, 2, 3, 4];
 	var arr2 = [1, 4, 5, 6, 6];
 	var repeatArr = arr1.filter(function(val) {
 				return arr2.indexOf(val) > -1;
 			});//获取重复元素
 			var newArr = arr1.concat(arr2);//合并数组
 			var defArr = newArr.filter(function(val){
 				return repeatArr.indexOf(val) == -1;
 			});
 console.log(defArr);
 
 			//6,找最大值,组成新数组
 			// 	var a=[1,2,3,4];
 			// 	var b=[2,3,4,5];
 			// 	var c=[3,4,5,6];
 			// 	var d=[0,1];
 			// 	a.sort(function(a,b){
 			// 		return a-b;});
 			// 		b.sort(function(a,b){
 			// 			return a-b;});
 			// 			c.sort(function(a,b){
 			// 				return a-b;});
 			// 				d.sort(function(a,b){
 			// 					return a-b;});
 			// 		var q=(a.slice(a.length-1,a.length));
 			// 		var w=(b.slice(b.length-1,b.length));
 			// 		var e=(c.slice(c.length-1,c.length));
 			// 		var r=(d.slice(d.length-1,d.length));
 			// console.log(q.concat(w,e,r));
 
 			//6.1合并为多维数组,然后取最大值
 			// var arr1=[1,2,3,4];
 			// 	var arr2=[2,3,4,5];
 			// 	var arr3=[3,4,5,6];
 			// 	var arr4=[0,1];
 			// 	var newArr = [arr1,arr2,arr3,arr4];
 			// 	var maxArr=[];
 			// 	newArr.forEach(function(arr){
 			// 		for(var i = 1; i < arr.length; i++){
 			// 			if(arr[0] < arr[i]){
 			// 				var tmp =arr[0];
 			// 				arr[0] = arr[i];
 			// 				arr[i] = tmp;
 			// 			}
 			// 		}
 			// 		maxArr.push(arr[0]);
 			// 	})
 			// 	console.log(maxArr);
</script>

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小刘03

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值