zoukankan      html  css  js  c++  java
  • 数组循环常用几种方法

    // 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]
    */
    

      

  • 相关阅读:
    简单介绍数据流动的控制
    数据再寄存器中的暂时保存
    八位三态数据通路控制器的逻辑电路设计讲解
    什么是同步有限状态机???
    verilog逻辑复制
    流水线经典讲解!!!!!
    流水线(pipe-line)简介
    总线(BUS)和总线操作
    多路选择器(multiplexer)简介
    使用telnet发送HTTP请求
  • 原文地址:https://www.cnblogs.com/yetiezhu/p/12878181.html
Copyright © 2011-2022 走看看