几种遍历数组的常用方法

1.最传统方法 for循环

 var arr = ["first","second","third","fourth",3,5,8];
 for(var i = 0; i < arr.length;i++){
        console.log(arr[i]);
    }
    //输出:
     first
     second
     third
     fourth
     3
     5
     8

for… in

var arr = ["first","second",'third' ,"fourth",3,5,8];
for(var i in arr){
     console.log(arr[i] +'/' + i);
 }
 //输出结果为:
     first/0
     second/1
     third/2
     fourth/3
     3/4
     5/5
     8/6

for…of

 var arr = ["first","second",'third' ,"fourth",3,5,8];
 for(var item of arr){
     console.log(item);
 }
 //输出结果:
     first
     second
     third
     fourth
     3
     5
     8

虽然for… in 、 for… of 都能够变历数组,但是两者还是有很大区别的,先说结论

  • 两者的主要区别在于他们的迭代方式 
    • 推荐在循环对象属性的时候,使用for in,在遍历数组的时候推荐使用for of
    • for…in 循环出来的是key, for…of循环出来的是value
    • for…in 是ES5 标准,for …of 是ES6标准,兼容性可能存在些问题,请注意使用
    • for…of 不能遍历普通的对象,需要和Object.keys() 搭配使用
var arr = ["first","second",'third' ,"fourth",3,5,8];
    //给数组添加新属性
    arr.name = 'zhangsan';
    for(var item of arr){
        console.log(item);
    }
    //输出:
        first 
        second
        third
        fourth
        3
        5
        8
    console.log('--------------分隔符----------------');
    for(var item in arr){
        console.log(arr[item] + '/' + item);
    }
    //输出:
     first/0
     second/1
     third/2
     fourth/3
     3/4
     5/5
     8/6 
     zhangsan/name
从上述代码可知:for...in 循环除了遍历数组元素外,还会遍历自定义属性,for...of只可以循环可迭代的可迭代属性,不可迭代属性在循环中被忽略了

2.foreach方法:被传递给foreach的函数会在数组的每个元素上执行一次,元素作为参数传递给该函数

    var arr = ["first","second","third","fourth",3,5,8];
    //element 表示arr的单元项,index 表示arr单元项对应的索引值
    arr.forEach(function(element,index){
        console.log(element + '/' + index);

    })
    //输出结果:
      first/0
      second/1
      third/2
      fourth/3
      3/4
      5/5
      8/6

注意:未赋值的值是不会在foreach循环迭代的,但是手动赋值为undefined的元素是会被列出的

 var arr1 = ["first","second", ,"fourth",3,5,8];
 arr1.forEach(function(element,index){
     console.log(element + '/' + index);

  })
  //输出结果
     first/0
     second/1
     fourth/3
     3/4
     5/5
     8/6

3.map 遍历数组,并通过callback对数组元素进行操作,并将所有操作结果放入数组中并返回该数组

 var arr = ["first","second",'third' ,"fourth"];
 var arr2 = arr.map(function(item){
    return item.toUpperCase();
 })
 console.log(arr2);
 //输出:
 [FIRST,SECOND,THIRD, FOURTH]

4.filter( )返回一个包含所有在回调函数上返回为true的元素新数组,回调函数在此担任的是过滤器的角色,当元素符和条件,过滤器就返回true,而filter则会返回所有符合过滤条件的元素

var arr = ["first","second",'third' ,"fourth",3,5,8];
    var arr3 = arr.filter(function(item){
        if(typeof item == 'number'){
            return item;
        }
    })
    console.log(arr3);
    //输出结果: 
    [3,5,8]         

5. every() 当数组中的每一个元素在callback上被返回true时就返回true(注意:要求每一个单元项都返回true时才为true)

every()与filter()的区别是:后者会返回所有符合过滤条件的元素;前者会判断是不是数组中的所有元素都符合条件,并且返回的是布尔值

var arr = ["first","second",'third' ,"fourth",3,5,8];
var bol = arr.every(function(element){
    if(typeof element == 'string'){
        return element;
    }
 })
 console.log(bol); //false

6.some()只要数组中有一项在callback上就返回true

every()与some()的区别是:前者要求所有元素都符合条件才返回true,后者要求只要有符合条件的就返回true

var arr = ["first","second",'third' ,"fourth",3,5,8];
    var bol = arr.some(function(element){
        if(typeof element == 'string'){
            return element;
        }
    })
    console.log(bol); //true
JavaScript中遍历数组有多种方法。其中常用方法包括forEach、map、for循环、for of、for in、filter和find。 1. 使用forEach方法进行遍历。forEach方法接受一个回调函数作为参数,该函数在遍历数组的每个元素时被调用。可以使用item参数来访问当前遍历到的元素,使用index参数来访问元素的索引,使用self参数来访问数组本身。例如: arr.forEach(function(item, index, self) { console.log(item); }); 这段代码会打印出数组arr中的每个元素。 2. 使用map方法进行遍历和映射。map方法也接受一个回调函数作为参数,该函数在遍历数组的每个元素时被调用,并返回一个新的数组。可以使用item参数来访问当前遍历到的元素。例如: let newArr = arr.map(item => { return item * 2; }); 这段代码会将数组arr中每个元素都乘以2,并将结果保存在新数组newArr中。 3. 使用for循环进行遍历。可以使用临时变量将数组的长度缓存起来,以避免重复获取数组长度。例如: for (var i = 0; i < arr.length; i++) { console.log(arr[i]); } 这段代码会按顺序遍历数组arr中的每个元素,并打印出来。 4. 使用for of循环进行遍历。for of循环可以直接遍历数组中的每个元素。例如: for (var item of arr) { console.log(item); } 这段代码会按顺序遍历数组arr中的每个元素,并打印出来。 5. 使用for in循环进行遍历。for in循环遍历的是数组的索引,而不是数组的值。例如: for (var index in arr) { console.log(arr[index]); } 这段代码会按顺序遍历数组arr中的每个元素,并打印出来。 6. 使用filter方法进行遍历和筛选。filter方法也接受一个回调函数作为参数,该函数在遍历数组的每个元素时被调用,并返回一个满足某个条件的新数组。例如: let newArr = arr.filter(item => { return item < 3; }); 这段代码会返回一个新数组newArr,其中包含数组arr中小于3的元素。 7. 使用find方法进行遍历。find方法也接受一个回调函数作为参数,该函数在遍历数组的每个元素时被调用,直到找到满足某个条件的元素为止。例如: let result = arr.find(item => { return item === 3; }); 这段代码会返回数组arr中第一个等于3的元素。 以上是JavaScript中常用几种遍历数组方法。根据实际需求选择合适的方法来进行遍历。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [JS遍历数组的十五种方法](https://blog.csdn.net/weixin_39987434/article/details/130869691)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值