3-1 forEach方法
遍历数组中的每一项,没有返回值,对原数组没有影响
var arr = [2,3,4,5]
arr.forEach((item,index)=>{
console.log(item+"--"+index);
})
3-2 of 方法
var arr = [2,3,4,5]
for(var i of arr){
console.log(i);
}
# of 支持异步循环
function muti(num){
return new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve(num*num)
},1000)
})
}
var arr = [2,3,4];
/*
forEach 是一个同步的循环
of 支持异步循环
*/
(async()=>{
/* arr.forEach(async(item)=>{
var res = await muti(item)
console.log(res)
}) */
for(let value of arr){
let res = await muti(value)
console.log(res)
}
})()
3-3 map 方法 (需加return)
可以改变数组的每一项,变成一个新数组
var arr = [2,3,4,5]
var res = arr.map((item=>{
return item*2
}))
console.log(arr); // [2,3,4,5]
console.log(res); // [4,6,8,10]
- 注意点:
```javascript var arr =[1,2,3] var res = arr.map(item =>{ return item*3 }) console.log(res); console.log(arr); // 没有改变数组原来的结构1.数组的每一项是基础(简单)类型,执行map不会改变数组原来的结构 2.数组的每一项为复杂类型,会改变原来的数据结构
var obj =[ {name:”liu”,age:10}, {name:”zhang”,age:11} ] var result = obj.map(item =>{ return item.age = 0; }) console.log(result); console.log(obj); // 改变了数组原来的结构
<a name="KjDQG"></a>
## 3-4 some 方法 (需加return)
- `只要数组中有一项满足条件,就输出true`
```javascript
var arr = [1,2,3,4,5]
var res = arr.some(item =>{
return item>3
})
console.log(res); // true
3-5 every 方法 (需加return)
数组中的每一项满足条件,才输出true
```javascript var arr = [1,2,3,4,5]
var str = arr.every(item => item >2) console.log(str); //false
<a name="1uAXH"></a>
## 3-6 findeIndex 方法
```javascript
// 找到符合条件的就返回 返回对应的下标,没找到就返回-1
var arr = [1,2,3,2]
var index = arr.findIndex(item=>{
return item == 2;
})
console.log(index); // 1
3-7 find 方法 (需加return)
// 找到一个就返回匹配的元素,没找到就返回 undefined
var arr = [1, 2, 3, 4, 5, 6]
var newArr = arr.find(val => {
return val > 2
})
console.log(newArr) // 3
3-8 filter 方法 (筛选,过滤)(需加return)
注:此方法也不会改变原始数组,会返回一个筛选成功匹配的元素组成的新数组。
// 查找符合条件的元素,主要用于筛选
var arr =[1,2,3,4,5]
var res = arr.filter(item =>item>2)
console.log(res);