• 数组那些事(slice,splice,forEach,map,filter等等)


        周五,再过会要下班了,刚才把《javascript高级程序设计》数组这块又看了下,加深下记忆。今天来继续练练笔,嘿嘿!(写下自己印象不深的东西)

        一.数组的定义(数组定义分为两种)

    方法一:
    1
    var color=new Array(num);//num为数字,(当然可写,可不写) 表示数组长度
      var color=new Array("red","yellow");//直接定义数组内容
    方法二:

    2.var color=[];//当然也可以定义的时候直接写入数组内容["red","yellow"]
    var color=["yellow","red"]

       

         二.检测数组

        

    方法一:
    color
    instanceof Array //返回true或者false (这个方法本身没有问题,但是当网页中包含多个框架时可能就会出现差错);
    方法二:
    es5新加的方法isArray,通过Array.isArray(color),同样返回真假值,当然很多都想到了这个有兼容新的问题存在 最后能可以考虑使用Object.prototype.toString.call(color)
    ==="[object Array]"(toString.call(color))来判断是否为数组

        三 方法

        1. push就是数组尾部插入,unshift头部插入(这两个一个头部,一个尾部)

        2. pop数据尾部删除,shift数组头部删除

        上述4个方法操作都会改变原数组内容,长度(上边就不细说,自己敲代码练练吧)

       

         3.详细说下slice和splice这两个我自己总是记不清楚或者说老忘记

      

    slice可以接受一个或两个参数(start,end)开始位置和结束位置。这个方法用于从数组中截取参数,当然不改变原数组。例如:
    var num=[1,2,3,4,5]; num.slice(2,4);//[3,4]; console.log(num);//[1,2,3,4,5] splice这个方法有三种使用方式(改变数组)
    1.删除 两个参数 start,length 即开始位置和删除的长度 2.插入 三个参数 start,length(删除),content(要插入的内容) 3.替换(也可以叫做删除后插入)同样是三个参数
    例子如下:
    var num=[1,2,3,4]; var del=num.splice(0,2);// [1,2] console.log(num);//[3,4]; var insert=num.splice(1,0,"5","6");//返回空 第二参数是0 console.log(num);//[3,5,6,4] var change=num.splice(1,1,"7","8");//[5] console.log(num);//[3,7,8,6,4]


    注意:slice影响原数组,splice不影响原数组

     接下来说下es5中加入的map,forEach,filter,every,some等

    这几个迭代方法包含两个参数:第一个要对数组对象操作的方法函数,第二个(可选参数)为作用域对象
    
    方法函数可以传递三个参数:1.数组中每个对象,2在数组中的位置,3,数组对象本身(可选)。
    
    every()返回一个真假值 主要对数组中每个对象进行判断,每个判断为true时最后 every会返回true
    
    some()  和every差不多,不同这个是只要有一个符合条件就会返回true
    
    map() 返回一个数组,返回每个操作函数所需要的值 组成数组

    forEach()没有返回值 主要通过参数函数对数组中对象进行操作

    filter()过滤器 返回true的数组(符合条件时候)


    var num=[1,2,3,4,5];

    num.every(function(item,index){return item>1});// false

    num.some(
    function(item,index){return item>1});//true

    num.map(function(item,index){return item*2});// [2, 4, 6, 8, 10]

    num.forEach(function(item,index){console.log(item*2)});

    num.filter(function(item,index){return item>2});// [3, 4, 5]
     
     

     就写到这了,下班,哈哈,不对的欢迎报错哦!!!

        

  • 相关阅读:
    关于JS动态切换样式表
    关于header()函数重定向的问题
    微信团队讲课笔记 Android 开发(二)UI设计
    Effective C++ 笔记:4设计与声明
    某面试算法题_最短时间找出十包粉末中的两蓝粉末。
    VS2015 配置opengl的一些库
    URAL 1225 Flags 简单DP,一重循环
    POJ 1384 Piggy-Bank 完全背包分析
    POJ 1651 Multiplication Puzzle DP 类似矩阵链
    URAL 1183 Brackets Sequence DP 路径输出
  • 原文地址:https://www.cnblogs.com/hsp-blog/p/5788367.html
Copyright © 2020-2023  润新知