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]
- 注意点:
``` 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="A1oYJ"></a>## 3-4 some 方法 (需加return)- `只要数组中有一项满足条件,就输出true`
var arr = [1,2,3,4,5]
var res = arr.some(item =>{ return item>3 }) console.log(res); // true
<a name="kG3pn"></a>## 3-5 every 方法 (需加return)- `数组中的每一项满足条件,才输出true````javascriptvar arr = [1,2,3,4,5]var str = arr.every(item => item >2)console.log(str); //false
3-6 findeIndex 方法
// 找到符合条件的就返回 返回对应的下标,没找到就返回-1var arr = [1,2,3,2]var index = arr.findIndex(item=>{return item == 2;})console.log(index); // 1
3-7 find 方法 (需加return)
// 找到一个就返回匹配的元素,没找到就返回 undefinedvar 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);
