zoukankan      html  css  js  c++  java
  • JS数组

    ## JS数组
    - 数组也是一个对象,功能和普通对象(Object)的功能类似
    - 数组中也可以保存不同的元素(属性)
    - 不同的是普通对象是通过一个字符串作为属性名来操作属性的
    - 而数字路是通过索引来操作元素的
        - 索引 (index)
        - 从0开始的整数

    #### 数组的操作
    - 创建数组
        - var 变量 = new Array()
        - var 变量 = []
    - 添加元素
        - 数组[索引] = 值
        - arr[0]=10;
    - 读取数组中的元素
        - 数组[索引]
        - console.log(arr[0])
    - 获取数组的长度
        - length属性可以获取或设置数组的长度
    - 修改length的属性
        - 如果将长度修改为小于之前长度的值,则多余的部分会被删除
        - 如果将长度修改为大于之前长度的值,则数组中会创建出空的元素
       
    #### 数组字面量
    - 使用数组字面量可以创建数组的同时,同时向数组中添加元素
    - 数组中可以保存任意类型的元素
    - 数组中也可以保存数组.如果保存的依旧是数字,称之为二维数组

    ----------

    #### 数组的方法
    ##### push()
    - 向数组末尾添加新的元素,并返回数组新的长度
    ##### pop()
    - 删除数组末尾的元素.并自动修正数组长度
    ##### unshift() 
    - 向数组最前面添加元素,并返回数组新的长度
    ##### shift()
    - 删除数组最前面的元素.结果并返回被删除的元素
    ##### slice( )
    - 截取数组中的指定元素
    - 第一个参数: 截取开始位置的索引(包括开始的位置)
    - 第二个参数: 截取结束位置索引(不包括结束的位置)
    - 参数也可以是负数. 负数则从后往前数
    - 如果第二个参数省略则从开始截取到最后
    - 该方法不会影响到原数组.而是将截取的内容封装成新数组返回(需要有一个变量进行接收)
    ##### splice()
    - 删除数组中的元素并添加新元素
    - 一旦执行原数组的元素会被删除
    - 第一个参数: 开始位置的索引(包括开始位置)
    - 第二个参数: 删除的个数
    - 第三个参数: [可选]新添加的元素. 这些元素将会被插入到开始位置之前的位置
    - 如果删除个数为0则直接从开始位置索引起添加新元素
    ##### concat()
    - 连接两个或多个数组
    - 不影响原数组.返回一个新的数组(需要用变量来接收)
    ##### join()
    - 将数组中所有的元素链接为字符串(需要一个变量接收新的数组返回结果)
    - 参数: 字符串.作为连接符来连接.如果不写则默认使用逗号
    ##### reverse()
    - 反转数组
    - 影响原数组. 直接在原数组进行反转
    ##### sort()
    - 可以用来对数组中的元素排序
    - 会影响到原数组
    - 默认它会按照元素的Unicode编码进行排序
    - 如果希望使用sort对一个数字型的数组进行排序可能会得到不可预期的结果

    ----------

    #### 数组去重
        arr = [1,2,3,4,5,6,7,8,9,5,6,3,,4,5,2,2,5,3,2,6,2,1,4,5]
             //获取数组中的数组
             for(i=0;i<arr.length;i++){
              //再次遍历数组.比上一次多一位开始遍历
            for(j=i+1;j<arr.length;j++){
              //比较两个遍历数组是否相等
                 if(arr[i]==arr[j]){
             //进入判断,证明两个数组一样的.则把arr[j]删除
                     arr.splice(j,1);
               //需要在同位置再比较一次
                        j--;
                  }
             }
        }
          console.log(arr)    ----> "1,2,3,4,5,6,7,8,9"

    #### 遍历数组
    - 遍历数组就是将数组中每一个元素都获取到
    - 一般情况下遍历数组使用for循环
    - i 既是索引值

              for(var i=0 ; i< arr.length; i++){
                  console.log(arr[i]);
              }

    #### forEach() 方法遍历数组
    - 由我们定义的但不由我们调用又可以执行的函数称为回调函数
    - forEach() 中的回调函数由浏览器调用
    - 浏览器遍历到一个元素就会调用一次
    - 回调函数中需要传递三个参数
        - 第一个参数: 正在遍历的元素 ele
        - 第二个参数: 遍历元素的索引 index
        - 第三个参数: 遍历的整个数组对象 obj
    - IE8以下浏览器不支持该方法

    #### arguments 函数
    - arguments是一个类数组对象,在它里面保存着函数执行时的实参
    - 函数所有的实参都在arguments中保存.
    - 通过arguments即使不定义形参也可以使用参数
    - arguments属性
        - callee
        - 代表当前正在调用的函数对象
    - Array.isArray() 检查一个对象是否是数组


    ----------

    #### call和apply
    - 当调用函数对象的call和apply时都会导致函数立即执行, 相当于调用了函数一样
    - 如果通过call和apply去调用一个函数,则call和apply中的第一个参数将会是函数中的this

    区别:

    - call的参数,需要一个一个列出来
    - apply的参数,需要封装为一个数组传递

  • 相关阅读:
    Android事件详解——拖放事件DragEvent
    Android 用户界面---拖放(Drag and Drop)(三)
    Android 用户界面---拖放(Drag and Drop)(二)
    Android 用户界面---拖放(Drag and Drop)(一)
    Android开发者指南-用户界面-拖放-Drag and Drop[原创译文]
    Android L动画入门
    基本介绍LINUX远程PC软件:PUTTY、SecureCRT、X-Manager
    js字的数目的计算方法(与word计算公式为)
    动机,努力工作,提高能力,提高战斗力,要注意保暖,维护创业热情。
    pig询问top k,每个返回hour和ad_network_id最大的两个记录(SUBSTRING,order,COUNT_STAR,limit)
  • 原文地址:https://www.cnblogs.com/huifang/p/7342011.html
Copyright © 2011-2022 走看看