js常用的遍历方法

js常用的遍历方法

对象

  1. for i in obj 此处i为属性名,适合遍历对象, 他的i为键名, 遍历数组的话i为字符串,但是数组的索引为数字。他遍历对象也可以遍历到手动添加的属性,甚至可以遍历到原型上的属性
    const obj = {
        id: 1, 
        name: 'qiao', 
        age: 18
    };

    for (let i in obj) {
        console.log(i + ' ' + obj[i]);
    }  

     // id: 1 
     // name: qiao, 
     // age: 18
  1. Object.keys() 属性名, Object.values() 属性值
    const obj = {
        id: 1, 
        name: 'qiao', 
        age: 18
    };
    //只可遍历可枚举属性
    console.log(Object.keys(obj));  // ['id', 'name', 'age']
    console.log(Object.values(obj)); // [1, 'qiao', 18]
    // 这个方法可以遍历出所有的属性名
    Object.getOwnPropertyNames(obj)

数组

  1. 最传统的for循环, 比较适用于可以确认次数的遍历
    const arr = [1,2,3,7,9,5,6];
    for (let i = 0; i < arr.length; i++) {
        console.log(i + ':' + arr[i]);
    }
  1. for i of 此处i为value值,避免了for in的缺点 可以使用conyinue和break及return,支持数组以及类数组,但是不适用于遍历对象
    const arr = [1,2,3,7,9,5,6];
    for (let i of arr) {
        console.log(i);
    }

迭代

  1. forEach() 注意forEach没有返回值,不用关心下标,但是不能同时遍历多个集合,而且在遍历的时候无法更改数组,也无法使用continue break 和return, 还有对于空数组不会执行回调
    // 接受3个参数 第一个为value值,第二个为下标,第三个为数组本身
    const arr = [1,2,3,7,9,5,6];
    let a = arr.forEach((item,index) => {   
        return item * 2;
    });
    console.log(a); // Undefined
  1. map() 返回的是经过循环体后重建的新数组
    const arr = [1,2,3,7,9,5,6];
    let a = arr.map((item,index) => {
        return item * 2;
    });
    console.log(a);  // [2, 4, 6, 14, 18, 10, 12]
  1. filter() 筛选 返回的是符合条件的值组成的新数组
    const arr = [1,2,3,7,9,5,6];
    let a = arr.filter((item,index) => {
        return item > 2;
    });
    console.log(a);  // [3, 7, 9, 5, 6]
  1. some() 只要有一个符合条件就返回true
    const arr = [1,2,3,7,9,5,6];
    let a = arr.some((item,index) => {
        return item > 2;
    });
    console.log(a); // true
  1. every() 只有全部符合条件才返回true
    const arr = [1,2,3,7,9,5,6];
    let a = arr.every((item,index) => {
        return item > 2;
    });
    console.log(a); // false

版权声明:本文为qq_50983290原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。