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,只需要比较数组的第一和第二项,比较完毕,返回。