• 数组的创建和各种API


    数组的创建方式:

    1. 数组直接量

    var arr = []   // 创建一个空数组
    var arr = [1,2,3,4]  // 创建同时初始化元素

    2. 实例化对象

    var arr=new Array();  // 此时的arr.length 等于 0   输出:String(arr)等于 ""

    3.创建空数组,初始化元素个数:

    var arr=new Array(n);  // 此时的 arr.length 等于 n   输出:String(arr) 等于 ,,,,,,,...

     4.创建数组同时初始化元素:

    var arr=new Array(值1,值2...);

    关于数组的各种API:

    1. 数组转字符串  String      join

    凡是频繁字符串拼接,都要用数组.join实现

    var str=String(arr); // 默认用逗号分隔每个元素值
    
     var str=arr.join("自定义连接符");  // 如果省略自定义参数,默认和String相同

    将数组元素拼接为页面元素固定套路:

    开始标签+arr.join("结束标签开始标签")+结束标签

     2. 拼接和截取:【不修改原数组,生成新数组 concat(拼接)    slice(截取)

     拼接:数组名.concat(新增的各个值)    新增的值可以是单个,也可以是数组,参数中的数组会被打撒成单个元素,再拼接,将参数中的值追加到arr1的值之后,【返回新数组

     var newArr=arr1.concat(值1,值2,arr2,...)

    例子:

        var arr1=[1,2,3];
        var arr2 = [];
        arr2=arr1.concat(12,23,[123,33]);          //拼接
        
        console.log(arr1)    //输出[1,2,3]
        console.log(arr2);   //输出[1,2,3,12,23,123,33]
        
        var subArr=arr2.slice(2,4+1);   //截取2~4下标 3个元素,含头不含尾
        console.log(subArr);             //输出[3,12,23]
        console.log(arr2);              //输出[1,2,3,12,23,123,33]

    3. 删除  插入  替换:直接【修改原数组 splice

    默认接收三个值, starti、n、值...   

    删除: var deleted=arr.splice(starti, n)                   starti 是开始删除的位置     n 是删除个数     deleted 接收被删除的元素组成的临时子数组    省略第三个值

    插入: arr.splice(starti, 0, 值1, 值2,...)                在 starti 位置插入多个值   原starti位置的值向后顺移。    此时的n值永远为0

    替换: var deleted=arr.splice(starti, n, 值1,...);       删除的元素个数n,不一定和新值个数相等。    splice方法没有打散数组参数的功能      三个参数都有值

    var arr = [1,2,3,4,5,6]
    
    var deleted=arr.splice(2, 3)     // 从下标 2 开始,截取 3 个值
    
    console.log(arr)              // 输出[1,2,6]    原数组被改变
    console.log(deleted)        // 输出[3,4,5]  
    
    arr = [1,2,3,4,5,6]  
    
    arr.splice(3,0,11,12,13)     // 从下标3开始,在后面加入11,12,13
    
    console.log(arr)         // 输出 [1,2,3,11,12,13,4,5,6]
    
    arr = [1,2,3,4,5,6] 
    
    var deleted=arr.splice(2,3,101,102,103)     // 从下标 2 开始,截取 3 个值, 添加3个值
    
    console.log(arr)        // 输出[1,2,101,102,103,6]    原数组被改变 ,截取的位置刚好被添加的值替换
    console.log(deleted)    // 输出[3,4,5]  

    4.栈和队列  【修改原数组】 push  pop   unshift    shift 

    js中没有专门栈和队列类型,其实都是用数组模拟的

    arr.push(值)          将 值 压入数组末尾

    var last=arr.pop()      从数组 末尾 弹出1个元素      不能传参

    arr.unshift(值)     将 值 插入到开头

    var first=arr.shift()       从数组 开头 弹出第1个元素

    var arr = [1,2,3]   // 以下输出假设在 arr = [1,2,3] 的情况下
    
    arr.push(10)     // 输出[1,2,3,10]
     
    arr.pop()        // 输出[1,2]
    
    arr.unshift(10)    // 输出 [10,1,2,3]
    
    arr.shift()      // 输出[2,3]

    5.翻转数组   【修改原数组】

    arr.reverse()

    6.数组的排序    【修改原数组】

    arr.sort() : 默认将所有元素转为字符串PK unicode    传入函数  function compare(a,b){return a-b;}     如果为 return b-a   那么输出结果为倒序

    function compare(a,b){return a-b;}
    
    var arr = [6,9,7,2,4,0,1]
    
    arr.sort(compare);
    
    console.log(arr)   // 输出 [0,1,2,4,6,7,9]
  • 相关阅读:
    再回首,Java温故知新(八):Java基础之字符串
    《Prism 5.0源码走读》 设计模式
    《Prism 5.0源码走读》Bootstrapper
    VS编译时自动下载NuGet管理的库
    《Prism 5.0源码走读》Prism 5.0简介
    代码阅读
    如何建设个人品牌
    Hexo建站教程
    Codeforce:131A. cAPS lOCK
    一文看懂《最大子序列和问题》
  • 原文地址:https://www.cnblogs.com/zhengweijie/p/7206002.html
Copyright © 2020-2023  润新知