• 数组循环常用几种方法


    // map filter some forEach every find findIndex  reduce
    
    let arr = [7,4,5,6,2]
    //返回一个新数组, 长度不变。[7, 4, 5, 6, false]
    let a0 = arr.map( v => v > 3 && v)
    
    //返回一个新数组, 长度会改变  [7, 6]
    let a1 = arr.filter( v => v > 5)
    
    //返回true和false 找到符合条件就会直接跳出循环 
    let a2 = arr.some( v => v > 8)
    
    //返回true和false 所有条件满足才能返回true
    let a3 = arr.every( v => v > 1)  //true
    
    // let a4 = arr.forEach( v => console.log(v) )
    
    let findArr = [{name: 1, id: 1}, {name: 2, id: 2}, {name: 3, id: 3}]
    //返回true 停止循环体 会把当前的值返回  {name: 2, id: 2}
    const a4 = findArr.find( v => v.id === 2 )
    
    // 返回下标 停止循环体
    let a5 = findArr.findIndex( v => v.id === 2 )
    // [{name: 1, id: 1},{name: 3, id: 3}]
    findArr.splice(a5, 1)   //改变原数组
    
    // console.log(a3)
    
    let arr1 = [1, 2, 4];
    //arr.reduce( 函数(必须有return), [默认值])
    //count -> 1    value -> 2  第一次循环   count 默认不写, 那就是 arr1的第一个元素也就是1
    //count -> 3    value -> 4  第二次循环   count是 1 + 2 的返回值 也就是3 
    let a6 = arr1.reduce( (count, value, key, arry) => {
        // console.log(count); // 结果依次为1,3
        // console.log(value); // 结果依次为1,2,4
        // console.log(key); // 结果依次为0,1,2
        // console.log(arry) // 三次结果都为[1,2,4]
        return count + value;
    });
    // console.log(arr1); // 结果为[ 1, 2, 4 ]
    // console.log(a6) // 结果为7
    
    // 代码解读:reduce的不同之处在于累加,和其他几个内置方法不同的地方,它的第二个参数不是this对象,
    // 而是初始累加值(如果不设置的话数组会乱掉),而且回调函数的的个数也不同,比其他的多了一个,
    
    
    let arr2 = [1,3,1,7,5] //统计数组中的数字, 出现了几次。
    
    let sum = arr2.reduce( (obj, value) => {
      if(obj[value]){
        obj[value].push(value)
      }else{
        obj[value] = [value]
      }
      return obj
    },{})
    console.log(sum);
    /*
    { Array(2), 3: Array(1), 5: Array(1), 7: Array(1) }
    1: (2) [1, 1]
    3: [3]
    5: [5]
    7: [7]
    */
    

      

  • 相关阅读:
    Axis2 1.7.4构建项目
    MyBatis之传入参数
    eclipse快捷键
    WEB-INF目录下的jsp页面如何访问?
    web-content和web-info目录问题
    http响应报文和http请求报文 详细信息
    极光推送知识点2
    极光推送别名、标签怎么理解
    推送的通知和自定义消息区别
    个推
  • 原文地址:https://www.cnblogs.com/yetiezhu/p/12878181.html
Copyright © 2020-2023  润新知