1.for循环
for(var i= 0 ; i<10; i++){
console.log(‘这个内容会打印10次‘)
}
for in
-
for in 多用于循环遍历对象的属性
-
循环出来的是key
-
for in 不适合遍历数组 : 因为V的值不是数字类型 而是字符串类型,在进行字符串运算时会带来极大的不便.
-
var myarr = [10,20,40,70];
for (v in myarr){
console.log(v); //1
console.log(typeof v); //string
}
?
?
#### for of
?
+ for of 多用于遍历数组
+ 循环出来的是value
?
```javascript
var myarr = [10,20,40,70];
for (v in myarr){
console.log(v); //10
console.log(typeof v); //num
}
2.forEach()
-
参数1 callback
-
参数1:循环的当前元素
-
参数2 :当前元素的下标
-
参数3:当前元素所属数组的对象
-
-
参数2 :可选。传递给函数的值一般用 "this" 值。如果这个参数为空, "undefined" 会传递给 "this" 值
var myarr = [‘10‘,‘20‘,‘40‘,‘70‘];
var otherArr = [‘2‘,‘3‘]
myarr.forEach(function (v,i,) {
console.log(v) //value值
console.log(i) //相应的下标
console.log(this) //this指向foreach的参数2
},otherArr);
3.map() 兼容问题 但是很屌就对了!!
-
方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
-
参数1 callback
-
参数1:循环的当前元素
-
参数2 :当前元素的下标
-
参数3:当前元素所属数组的对象
-
-
参数2 :可选。传递给函数的值一般用 "this" 值。如果这个参数为空, "undefined" 会传递给 "this" 值
var myarr = [‘10‘,‘20‘,‘40‘,‘70‘];
console.log(myarr.map(x => x * 2)); // [‘20‘,‘40‘,‘80‘,‘140‘]
-
forEach()和map()遍历
共同点
1.都是循环遍历数组中的每一项。
2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索引index,原 始数组input。
3.匿名函数中的this都是指Window。
4.只能遍历数组。
4.some()
-
some()方法用于检测数组中的元素是否满足指定条件
-
该方法会依次执行数组中的每个元素
-
如果有一个元素满足条件则返回true,剩余元素不会再次执行检测
-
如果没有满足条件则返回false
-
不会对空数组进行检测
-
不会改变原数组
-
-
var age = [4,12,18,20,21];
var judge = age.some(function(v){ //遍历age中的value值 大于20则返回ture反之返回false
return v>20;
})
console.log(judge); //true
5.filter()
-
语法
-
array.filter(function(v,i,arr), thisValue)
-
-
创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
-
filter() 不会对空数组进行检测。
-
filter() 不会改变原始数组。
-
var age = [4,12,18,20,21,23,99,‘wo‘];
var judge = age.filter(function(v){
return v>20;
})
console.log(judge); [21,23,99]