• [JS高程]引用类型(Object、Array)


    引用类型:Object、Array

    Object:

      person.name   =>推荐,除非必须使用变量([])来表示

      person["name"]

      区别:[]可以通过变量来访问(出现关键字、保留字、导致语法错误的字符都可以通过方括号来表示)

    Array:

      构造函数:

        var colors = Array(3)  =>数组length:3

        var color = Array('red')  =>数组length:1

      数组字面量:

        colors = ['red','yellow','blue']

      检测数组:

        Array.isArray()

      转换方法:

        toLocalString()

        toString()       转成字符串,用typeof弹出的是string

        valueOf()       返回的还是数组,用typeof弹出的是object

       栈方法(后进先出)和队列方法(先进先出):

        push() 进,返回值:数组的长度 

        pop()  出,数组末尾最后一项,返回值:移除的项

        unshift()  进,返回值:数组的长度

        shift()      出,数组第一项,返回值:移除的项

        后进先出:  push()    pop()

        先进先出:  push() shift()

      重排序方法:

        reverse()  反转

        sort()  排序,字符串排序,实现数值排序,需要在sort里接收函数,即:

          sort(function(a,b){

            return a-b;          从小到大

            return b-a;    从大到小

          })

        正数交换位置

      操作方法:

        concat()  连接起来

          var color = ['red']

          console.log(color.concat('yellow','blue'))    =>red,yellow,blue

        slice()   截取子串

          1个参数:当前位置到末尾

          2个参数:当前位置到结束位置(不包括结束位置)

          参数接受负数,结束位置<开始位置,返回空数组,即slice(4,3),为空数组

          var colors = ['red','yellow','blue','green','grey']
    
          console.log(colors.slice(1));  =>'yellow','blue','green','grey'
    
          console.log(colors.slice(1,3));  =>'yellow','blue'
    
          console.log(colors.slice(-2,-1)  =>'green',相当于slice(3,4),即length-2,length-1

        splice()  删除、替换、插入,返回值为删除的项

          删除(2个参数)
    
            var colors = ['red','green','blue']
    
            console.log(colors.splice(0,1));  =>返回值为删除的项,即'red'
    
            console.log(colors)  =>'green','blue'
          替换(3个参数)
            console.log(colors.splice(1,1,'yellow','purple')); =>'green'
            console.log(colors) =>'red','yellow','purple','blue'       删除(3个参数,第2个参数为0)         console.log(colors.splice(1,0,'yellow','purple')); =>空         console.log(colors) =>'red','yellow','purple','green','blue',注:在位置1前面插入元素

      位置方法:  

        indexOf()  从前往后

        lastIndexOf()  从后往前

        没有找到返回-1,是“全等”操作

        var numbers=[1,2,3,4,5,4,3,2,1]
        console.log(numbers.indexOf(4))  =>3
        console.log(numbers.lastIndexOf(4)) =>5
        console.log(numbers.indexOf(4,4)) =>5,表示从第4位开始向后找数字‘4’
        console.log(numbers.lastIndexOf(4,4) =>3,表示从第4位开始向前找数字‘4’

      迭代方法:(IE9+)

        (里面包括函数,这个函数中有三个参数:数组项的值item、该项在数据中的位置index、数组对象本身)

        every()、some()

        查询数组中的项是否满足某个条件,区别在于:every(),传入的函数必须第一项返回true,才会返回true(and)

                             some(),传入的函数只有某一项返回true,就返回true(or)

        var numbers=[1,2,3,4,5,4,3,2,1]
    
        var everyResult = numbers.every(function(item,index,array)){
    
          return (item>2)
    
        }
    
        console.log(everyResult)=>false
        如果将every改成some,结果为true

        filter(),筛选,查询符合某些条件的所有数组项

        var filterResult = numbers.filter(function(item,index,array){
    
          return (item>2)
        })
    
        console.log(filterResult)  =>[3,4,5,4,3]

      map(),用来对数组项进行运算

        var mapResult = numbers.map(function(item,index,array){
    
          return (item*2)
        })
        console.log(mapResult) =>[2,4,6,8,10,8,6,4,2]

      forEach(),对数组中的每一项运行传入的函数,无返回值,本质上与for一样

      归并方法:

          (里面包括函数,这个函数中有四个参数:前一个值prev、当前值cur、索引项index、数组对象array)

        reduce(),从前往后

        reduceRight(),从后往前

        var values = [1,2,3,4,5]
    
        var sum = values.reduce(function(prev,cur,index,array){
    
          return prev+cur;
    
        })
    
        console.log(sum) =>15
  • 相关阅读:
    bzoj 1208: [HNOI2004]宠物收养所 (Treap)
    Bzoj 2431: [HAOI2009]逆序对数列 (DP)
    Bzoj 1055: [HAOI2008]玩具取名 (区间DP)
    线段树入门详解
    Bzoj 1087: [SCOI2005]互不侵犯King
    Bzoj 2748: [HAOI2012]音量调节 (DP)
    Bzoj 2752 高速公路 (期望,线段树)
    惨淡的模拟赛
    GSS4
    Bzoj 近期题目一句话题解
  • 原文地址:https://www.cnblogs.com/joya0411/p/3618765.html
Copyright © 2020-2023  润新知