• HTMLJS 数组 内置对象


    【JS中的数组】

    1、数组的基本概念?
    数组是在内存空间中连续存储的一组有序数据的集合
    元素在数组中的顺序,称为下标。可以使用下标访问数组的每个元素
    2、如何声明一个数组
    ① 使用字面量声明:var arr=[];
    在JS中,同一数组可以存储各种数据类型。
    例如:var arr=[1,"2",true,4,{}];
    ② 使用new关键字明,var arr= new Array(参数);
    >>>参数可以是:
    a.省略,表示创建一个空数组
    b.参数为一个整数,表示声明一个length为指定长度的数组。
    但是这个length可以随时可变,可追加。
    c.参数为,分隔的多个数值表示数组的多个值。
    new array(1,2,3)==[1,2,3]
    3、数组中元素的读写/增删
    ① 读写:通过下标访问元素。下标从0开始。arr[1]="haha";
    ② 增删:
    a.使用delete,关键字删除数组的某一个值,删除之后,数组的长度不变,对应的位置变为Undefined
    eg:delete arr[1];
    b.arr.pop()删除数组的最后一个值。相当于arr.length -= 1;
    c.arr.shift();删除数组的第一个值;
    d.arr.unshift(值):在数组的第0个位置新增一个值;
    e.arr.push():在数组的最后一个位置新增一个值
    f.直接访问数组没达到的下标,可以动态追加。
    arr[100]=1;中间如果有空余下标,将存入Undefined.
    4、数组中的其他方法
    join("分隔符号"):将数组用指定分隔符链接为字符串。当参数为空时,默认用逗号分隔;
    concat():【原数组不会被改变】,将数组将两个或多个数组的值链接为新数组;
    concat链接时,如果有二维数组则之多能拆一层中括号
    [1,2].concat([3,4],[5,6])->[1,2,3,4,5,6]
    [1,2].concat([3,4,[5,6]])->[1,2,3,4,[5,6]]
    ③ push:数组最后增加一个,unshift:数组开头增加一个 --返回新数组的长度
    pop():数组最后删除一个, shift():数组开头删除一个 --返回被删除的值
    【上述方法均会改变原数组】
    reverse():【原数组被改变】将数组翻转,倒序输出
    slice(begin,end):【原数组不会被改变】,截取数组中的某一部分,并 返回截取的新数组
    >>>传入一个参数,表示开始区间,默认将截到数组最后;
    >>>传入两个参数,表示开始和结束的下标,左闭右开区间(包含begin,不含end)
    >>>两个参数可以为负数,表示从右边开始数,最后一个值为-1
    sort():【原数组被改变】,将数组进行升序排列
    >>>默认情况下,会按照每个元素首字母的Ascii码值进行排列;
    [3,1,5,12].sort()->[1,12,3,5]
    >>>可以传入一个比较函数,手动指定排序的函数算法;
    函数将默认接收两个值a,b 如果函数返回值>0,则证明a>b;
    arr.sort(fucntion(a,b){
    return a-b;//升序排列
    return b-a;//降序排列
    })
    indexOf(value,index):返回数组中第一个value值所在的下标,如果没有找到,返回-1
    lastIndexOf(value,index):返回数组中最后一个value所在的下标,如果没有找到,返回-1
    >>>如果没有指定index,则表示全数组查找value
    >>>如果指定了index,则表示从index开始,往后查找value
    arr.forEach():专门用于循环遍历数组,接收一个回调函数,回调函数接收两个参数,第一个参数
    为数组的每一项的值,第二个参数为下标(IE8之前不支持此函数)
    arr.forEach(function(item,index){
    console.log(item);
    })
    map():数组映射。使用方式与forEach相同,不同的是map可以有return返回值,表示将原数组的
    每个值进行操作后返回给一个新数组(IE8之前不支持此函数)
    arr.map(function(item,index){
    console.log(item);
    return item-1;
    })
    5、二维数组与稀疏数组(了解)
    ① 二维数组: 数组中的值,依然是一个数组形式。
    eg:arr=[[1,2,3][4,5,6]];//相当于两行三列
    读取二维数组:arr[行号][列号]
    ② 稀疏数组:数组中的索引是不连续的。(length要比数组中实际的元素个数大)
    6、基本数据类型和引用数据类型
    ① 基本数据类型:赋值时,是将原变量中的值,赋值给另一个变量。赋值完成后,两个变量相互独立,
    修改其中一个的值,另一个不会变化。
    ② 引用数据类型:赋值时,时将原变量在内存中的地址,赋值给另一个变量。赋值完成后,两个变量中存储的
    是同一个内存地址,访问的是同一份数据,其中一个改变另一个也会发生变化。
    ③ 数值型,字符串,布尔型等变量属于基本数据类型,
    而数组,对象属于引用数据类型;

  • 相关阅读:
    This is very likely to create a memory leak. Stack trace of thread错误分析
    spring boot 2.0 neo4j 使用
    造个简单的轮子倒是不难,但可用性健壮性高到qt这样全世界都在用,就几乎不可能了
    0xC0000005;Access Violation(栈区空间很宝贵, linux上栈区空间默认为8M,vc6下默认栈空间大小为1M)
    Object::connect: Cannot queue arguments of type 'QMap<QString,QString>'(要使用qRegisterMetaType<StringMap>进行注册)
    QFileSystemModel只显示名称,不显示size,type,modified
    非Qt工程使用Qt的信号槽机制
    web性能权威指南(High Performance Browser Networking)
    缓存穿透 缓存并发 缓存失效
    互联网架构-基础中间件
  • 原文地址:https://www.cnblogs.com/zzzzyy/p/7471037.html
Copyright © 2020-2023  润新知