zoukankan      html  css  js  c++  java
  • js——数组/对象常用方法总结

     参考:http://www.mamicode.com/info-detail-2653981.html

       https://blog.csdn.net/w390058785/article/details/80522383

    1. filter

      filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

      注意: filter() 不会对空数组进行检测。

      注意: filter() 不会改变原始数组。

      语法: 

    array.filter(function(currentValue,index,arr), thisValue)

      参数:

      

      例:

      

    let ages = [32, 33, 16, 40];
    let arr = ages.filter(item => {
        return item >= 18
    });
    
    console.log(arr); //[32,33,40]

    2. map

      map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

      map() 方法按照原始数组元素顺序依次处理元素。

      注意: map() 不会对空数组进行检测。

      注意: map() 不会改变原始数组。

      语法:

    array.map(function(currentValue,index,arr), thisValue)

      参数:

      

      

      例:

      

    let ages = [{age:18,num:1}, {age:19,num:2}];
    let arr = ages.map(item => {
       item.age
    });
    
    console.log(arr); //[18,19]

    3. reduce

      reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

      reduce() 可以作为一个高阶函数,用于函数的 compose。

      注意: reduce() 对于空数组是不会执行回调函数的。

      语法: 

    array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

      参数:

      

      例:

    let numbers = [65, 44, 12, 4];
    
    let sum = numbers.reduce((cur, next) => {
       return cur+ next; 
    },10);
    
    console.log(sum); //135,初始值为10

    4. forEach

      forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。

      注意: forEach() 对于空数组是不会执行回调函数的。

      语法:

    array.forEach(function(currentValue, index, arr), thisValue)

      参数:

      

      例:

      

    let numbers = [4, 9, 16, 25];
     
    number.forEach(item => {
        console.log(item); 
    })
    
    // 结果:
    // 4
    // 9
    // 16
    // 25

    5. for...in 与 for...of

      数组:

    let arr=[1,2,3,4];
    arr.name = '张三'; //自定义属性
    for (let i in arr){ console.log(i); //0,1,2,3,name 拿到的是数组的下标,set 和 map生成的数组不能使用for in(没有下标) } for (let i of arr){ console.log(i); //1,2,3,4 拿到的是数组的元素,且不会遍历自定义属性 }

      对象:

    let obj=[name:'张三',age:18];
    
    for (let i in obj){
        console.log(i); //name,age 拿到的是对象的属性名
    }
    
    for (let i of arr){
        console.log(i); //报错,因为此对象不是可迭代对象,但set 和 map生成的对象可以
    }
  • 相关阅读:
    codeforces 616E. Sum of Remainders 数学
    codeforces 620F. Xors on Segments
    codeforces 417D. Cunning Gena 状压dp
    bzoj 1934 : [Shoi2007]Vote 善意的投票 最小割
    codeforces 628F. Bear and Fair Set 网络流
    codeforces 626E. Simple Skewness 三分
    div嵌套,内层的margin-top会跑到外层
    测试用导航(为了方便在各个测试页面间进行跳转,只需将此js代码引入每个页面即可) V2.0
    ECS_8080端口连接拒绝问题排查
    京东技术架构(二)构建需求响应式亿级商品详情页
  • 原文地址:https://www.cnblogs.com/linjiangxian/p/13533625.html
Copyright © 2011-2022 走看看