• 数组


    1、数组的定义

      字面量:

        let  arr  =  [1,2,3,4]

      构造函数:

        let  arr  =  new  Array(1,2,3,4)

      唯一区别:

        let  arr  =  new  Array(10)

        表示创建一个length为10的数组

    2、数组的常用方法

      (1)push

        改变原数组

        let  arr  =  [ ]

        arr.push(1,2)  // 2

        console.log(arr)  // [1, 2]

        push实现原理

          Array.prototype.push  =  function ( ){

            for(var  i  =  0; i  <  arguments.length;  i  ++){

              this[this.length]  =  arguments[i]

            }

            return  this.length;

          }

        (2)pop

          改变原数组

          let  arr  =  [1, 2, 3, 4]

          arr.pop( )  // 4

          console.log(arr)  // [1, 2, 3]

        (3)unshift

          改变原数组

          let  arr  =  [1, 2, 3]

          arr.unshift(7,8)  // 5

          console.log(arr)  // [7, 8, 1, 2, 3]

        (4)shift

          改变原数组

          let  arr  =  [1, 2, 3]

          arr.shift( )  // 1

          console.log(arr)  [2, 3]

        (5)reverse

          改变原数组

          let  arr  =  [1, 3, 5, 7, 9]

          arr.reverse( )  // [9, 7, 5, 3, 1]

          console.log(arr)  // [9, 7, 5, 3, 1]

        (6)splice

          改变原数组

          arr.splice(从第几位开始, 截取多少的长度,在切口处添加新的数据)

          let  arr  =  [1, 2, 3, 4, 5]

          arr.splice(2, 2)  // [3, 4]

          console.log(arr)  // [1, 2, 5]

          

          let  arr  =  [1, 2, 3, 4, 5]

          arr.splice(2, 1, 8, 9)  // [3]

          console.log(arr)  // [1, 2, 8, 9, 4, 5]

          let  arr  =  [1, 2, 3, 4, 5]

          arr.splice(2, 0, 6, 7)  // [ ]

          console.log(arr)  // [1, 2, 6, 7, 3, 4, 5]

        (7)sort

          改变原数组

          看返回值,当返回负数时,前面的数放在前面;当返回正数时,后面的数放在前面;返回0,不动

          let  arr  =  [1, 3, 6, 4, 2, 9, 5]

          arr.sort(function(a, b){

            return  a  -  b;

          })

        

          面试题:给一个有序的数组,乱序

            var  arr  =  [1, 3, 4, 6, 8, 9]

            arr.sort(function( ){

              return  Math.random( ) - 0.5;

            })

        (8)concat

          不改变原数组

          let  arr1  =  [1, 2, 3];

          let  arr2  =  [5, 6, 7];

          arr1.concat(arr2)  // [1, 2, 3, 5, 6, 7]

          console.log(arr1)  // [1, 2, 3]

          console.log(arr2)  // [5, 6, 7]

        (9)toString

          let  arr  =  [1, 2, 3, 4, 5];

          arr.toString( )  // '1,2,3,4,5,6'

          console.log(arr)  // [1, 2, 3, 4, 5]

        (10)slice

          不改变原数组

          slice(开始位置,结束位置(不包含该位置))

          let  arr  =  [1, 2, 3, 4, 5, 6];

          arr.slice(1, 3)  // [2, 3]

          console.log(arr)  // [1, 2, 3, 4, 5, 6]

          arr.slice(1)  // [2, 3, 4, 5, 6]

          arr.slice( )  // [1, 2, 3, 4, 5, 6]

          arr.slice(-3)  // [4, 5, 6]

        (11)join

          let  arr  =  [1, 2, 3, 4, 5, 6];

          arr.join('|')  // '1|2|3|4|5|6'

    3、类数组

      属性要为索引(数字),必须有length属性,最好加上push方法

      var  obj  =  {

        "0" : "a",

        "1" : "b",

        "2" : "c",

        length : 3,

        push : Array.prototype.push,

        splice : Array.prototype.splice

      }

      

  • 相关阅读:
    定律法则
    thymeleaf模板引擎基础使用(转)
    OGNL是什么
    ZooKeeper可视化Web管理工具收集(待实践)
    Java下用Jackson进行JSON序列化和反序列化(转)
    JQuery获取select选中值和清除选中状态(转)
    Javascript控制回车键进行表单(form)提交(转)
    Javascript中数据与字符串互转(转)
    MySQL的limit用法及优化(转)
    Javascript中JSON的序列化和反序列化(转)
  • 原文地址:https://www.cnblogs.com/cuishuangshuang/p/13280908.html
Copyright © 2020-2023  润新知