前端循环 for for in for of forEach every some filter map while赠送个冒泡

for

var list =[1,6,9,3,4,85,99,58,68,50,70,3,32,45]
for (var i = 0;i<list.length;i++) {
	console.log(i)
	console.log(list[i])
	list[i]++;
}
console.log(list)

总结 可以获取数组下标 操作数组 也可以设置新数组 过滤放入

for in

var list =[1,6,9,3,4,85,99,58,68,50,70,3,32,45]
for(var i in list) {
	console.log(i);
	console.log(list[i]);
	list[i]++;
}
console.log(list)

总结 可以获取数组下标 可以操作数组

for of

var list =[1,6,9,3,4,85,99,58,68,50,70,3,32,45]
for(var of in list) {
	console.log(i);
	i++;
}
console.log(list)

总结 不可以获取数组下标 不可以操作数组 可以获取到值

forEach

var list = [1, 6, 9, 3, 4, 85, 99, 58, 68, 50, 70, 3, 32, 45]
list.forEach((el,index,arr)=>{
	console.log(el)//值
	console.log(index)//下标
	console.log(arr)//数组
	el = el+1;//不可以
	list[index] ++;//可以
})
setTimeout(()=>{
	console.log(list)
},500)

总结 可以获取到值 可以获取到下标 可以获取到值 可以操作值

every

var list = [1, 6, 9, 3, 4, 85, 99, 58, 68, 50, 70, 3, 32, 45]
list.every((el,index,arr) =>{
	console.log(el)
	console.log(index)
	console.log(arr)
	return el<60
})

总结 every方法 返回一个布尔值 最后没有return 也会跳出 返回true 说明里面都满足条件 返回false 说明里面有不满足条件

some

var list = [1, 6, 9, 3, 4, 85, 99, 58, 68, 50, 70, 3, 32, 45]
	console.log(list.some((el,index,arr) =>{
		console.log(el)
		console.log(index)
		console.log(arr)
	return el>60
	}))

总结 some方法 返回一个布尔值 返回false 说明里面都满足条件 返回true 说明里面有不满足条件的

filter

var list = [1, 6, 9, 3, 4, 85, 99, 58, 68, 50, 70, 3, 32, 45]
console.log(list.filter((el,index,arr) =>{
	console.log(el)
	console.log(index)
	console.log(arr)
	return el>60
}))

总结 filter方法 返回一个满足条件的数组 不满足条件的过滤掉

map

var list = [1, 6, 9, 3, 4, 85, 99, 58, 68, 50, 70, 3, 32, 45]
console.log(list.filter((el,index,arr) =>{
	console.log(el)
	console.log(index)
	console.log(arr)
	return el+100
}))

总结 map方法 返回一个一个操作后的数组 返回一个数组 内相对于list 都加了100

while

var num = 8
var i = 0
while(num <= 300){
	i++;
	num = num +65
}
console.log(i)
console.log(num)

总结 while方法 修改值 满足条件跳出

冒泡

var arr = [8,94,15,88,55,76,21,39];//数组
for(var i = 0; i < arr.length - 1; i++) {//循环数组
	for(var j = 0; j < arr.length - i - 1; j++) {//循环数组 -1 次
		if(arr[j] < arr[j + 1]) { //当n+1大于n时 切换位置
			var temp;
			temp = arr[j];
			arr[j] = arr[j + 1];
			arr[j + 1] = temp;
		}
	}
}

总结 循环两次 第一次循环外层 第二次循环用来判断里层
外层循环一次 内层循环一圈
外层循环一次 将最大的或最小的排在最后面 其他位置向前移动一位
当外层循环完 里层每个数据都排了一遍
当i=0的时候,里面的循环完整执行,从j=0执行到j=6,这也就是第一遍排序,结果是将最大的数排到了最后,这一遍循环结束后的结果应该是[8,15,88,55,76,21,39,94]
当i=1的时候,里面的循环再次完整执行,由于最大的数已经在最后了,没有必要去比较数组的最后两项,这也是j<arr.length-1-i的巧妙之处,结果是[8,15,55,76,21,39,88,94]
说到这里,规律就清楚了,每次将剩下数组里面最大的一个数排到最后面,当第一个循环执行到最后的时候,也就是i=6,此时,j=0,只需要比较数组的第一和第二项,比较完毕,返回。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值