1、 for-in

  1. var arr = ["html","css","javascript"]
  2. for(var key in arr){
  3. console.log(key)
  4. }

2、 of 方法

  1. var arr = [2,3,4,5]
  2. for(var i of arr){
  3. console.log(i);
  4. }
  1. # of 支持异步循环
  2. function muti(num){
  3. return new Promise((resolve,reject)=>{
  4. setTimeout(()=>{
  5. resolve(num*num)
  6. },1000)
  7. })
  8. }
  9. var arr = [2,3,4];
  10. /*
  11. forEach 是一个同步的循环
  12. of 支持异步循环
  13. */
  14. (async()=>{
  15. /* arr.forEach(async(item)=>{
  16. var res = await muti(item)
  17. console.log(res)
  18. }) */
  19. for(let value of arr){
  20. let res = await muti(value)
  21. console.log(res)
  22. }
  23. })()

3、 forEach方法

遍历数组中的每一项,没有返回值,对原数组没有影响

  1. var arr = [2,3,4,5]
  2. arr.forEach((item,index)=>{
  3. console.log(item+"--"+index);
  4. })

4、 map 方法 (需加return)

可以改变数组的每一项,变成一个新数组

  1. var arr = [2,3,4,5]
  2. var res = arr.map((item=>{
  3. return item*2
  4. }))
  5. console.log(arr); // [2,3,4,5]
  6. console.log(res); // [4,6,8,10]
  • 注意点:
    1. 1.数组的每一项是基础(简单)类型,执行map不会改变数组原来的结构
    2. 2.数组的每一项为复杂类型,会改变原来的数据结构
    ```javascript var arr =[1,2,3] var res = arr.map(item =>{ return item*3 }) console.log(res); console.log(arr); // 没有改变数组原来的结构

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); // 改变了数组原来的结构

  1. <a name="KjDQG"></a>
  2. ## 5、 some 方法 (需加return)
  3. - `只要数组中有一项满足条件,就输出true`
  4. ```javascript
  5. var arr = [1,2,3,4,5]
  6. var res = arr.some(item =>{
  7. return item>3
  8. })
  9. console.log(res); // true

6、 every 方法 (需加return)

  • 数组中的每一项满足条件,才输出true ```javascript var arr = [1,2,3,4,5]

var str = arr.every(item => item >2) console.log(str); //false

  1. <a name="1uAXH"></a>
  2. ## 7、 findeIndex 方法
  3. ```javascript
  4. // 找到符合条件的就返回 返回对应的下标,没找到就返回-1
  5. var arr = [1,2,3,2]
  6. var index = arr.findIndex(item=>{
  7. return item == 2;
  8. })
  9. console.log(index); // 1

8、 find 方法 (需加return)

  1. // 找到一个就返回匹配的元素,没找到就返回 undefined
  2. var arr = [1, 2, 3, 4, 5, 6]
  3. var newArr = arr.find(val => {
  4. return val > 2
  5. })
  6. console.log(newArr) // 3

9、 filter 方法 (筛选,过滤)(需加return)

注:此方法也不会改变原始数组,会返回一个筛选成功匹配的元素组成的新数组。

  1. // 查找符合条件的元素,主要用于筛选
  2. var arr =[1,2,3,4,5]
  3. var res = arr.filter(item =>item>2)
  4. console.log(res);
  1. var students = [
  2. {name:"李四",age:"18岁"},
  3. {name:"李二",age:"11岁"},
  4. {name:"李五",age:"19岁"},
  5. {name:"王四",age:"22.5岁"},
  6. ]
  7. /* 大于11岁,返回一个新的数组 */
  8. var result = students.filter(item=>{
  9. return parseFloat(item.age)>11;
  10. })
  11. console.log(result)