Array循环

  大家平常经常会遇到数组的循环,最常用的可能是for循环以及forEach,但是自从ES6之后有了map、set等属性 ,这对我们精简代码起到了很大的作用,今天我就罗列下几种常用的数组循环方式,以及它们的区别。

  let arr = ['name', 'age', 'sex'];
  1. // forEach 不可使用break;使用return是跳出当前本次循环,继续下次循环
  let arrforeach = [];
  arr.forEach(function(item, index){
    arrforeach.push(index+'-'+item);
  });
  console.log(arrforeach); //["0-name", "1-age", "2-sex"]

  2. // map 将arr.map()赋值给新值arrmap,会发现新值arrmap是经过arr改造的另一个数组
  let arrmap = arr.map(function (item, index) {
    return index+'-'+item
  });
  console.log(arrmap); //["0-name", "1-age", "2-sex"]

  3. // filter 筛选符合条件的所有元素
  let arrfilter = arr.filter(function (item, index) {
    return index > 0;
  });
  console.log(arrfilter); //["age", "sex"]

  4. // find 返回符合条件的第一个元素,也就是找到为止,找不到返回undefined
  let onlyitem = arr.find(function(item, index){
    return item.length === 3;
  });
  console.log(onlyitem); //age

  5. // some 测试数组中是否至少有一个元素满足条件,有则返回true 无则返回false
  let booltrue = arr.some(function(item, index){
    return index > 1;
  });
  console.log(booltrue); //true
  let boolfalse = arr.some(function(item, index){
    return index > 2;
  });
  console.log(boolfalse); //false

  some循环中,只要有一项返回true则跳出循环,some函数的整体值为true,如果每一项都返回false,则some的整体值为false

  every循环中,只要有一项返回false则跳出循环,every整体循环返回值为false, 如果每一项都返回true,则every整体返回true

  总结是some和every相反

  6. // for 循环如果放在函数内,才可以使用return,如果不在函数内使用break,效果一样,都是跳出for循环的意思,return还有个结束函数的意思

  function a (arr){
    for(var i = 0;i<arr.length;i++){
        console.log(arr[i])
        if(arr[i]=='age'){
      return;
    }
    }
  console.log(arr,'-------')
}
a(arr) //name age

 

  

  本文参考Array.prototype, 链接: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

 

  

    

posted @ 2017-11-16 11:16  王红娇  阅读(316)  评论(0编辑  收藏  举报