JavaScript - 关于Array的一些基础东西

Array的index可以不是正整数,但是它们不会包含在Array中

    let myArr = [1, 2, 3];

    myArr[2.3] = 3;
    myArr[-2] = 4;
    myArr['a'] = 5;

    console.log(myArr[2.3]);
    console.log(myArr[-2]);
    console.log(myArr['a']);
    console.dir(myArr);
    console.log(myArr.length);      

运行结果,可以看出通过下标依然可以访问,但是Array的长度依然为3,没有变长

这里写图片描述


Array.prototype.push()与Array.prototype.unshift() 可以对Array进行多值添加,返回值为当前Array长度

    let myArr = [];

    console.log(myArr.push(1, 2, 3));
    console.log(myArr);
    console.log(myArr.unshift(4, 5, 6));
    console.log(myArr);

运行结果

这里写图片描述


Array.prototype.slice()

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

    console.log(myArr.slice());

    console.log(myArr);

    console.log(myArr.slice(2));

    console.log(myArr.slice(2,4));

    console.log(myArr.slice(-2));

    console.log(myArr.slice(-2, -1));

从运行结果可以看出:

  • 此方法可以返回一个被切割的数组,但并不会改变原数组
  • 第一个参数的切割开始的下标,第二个参数如果没有,直接切割到末尾,如果存在,则代表被切割部分最后一位的后一个下标
  • 如果为负数,则表达的是从后往前的下标,从 -1 开始

这里写图片描述


使用 Array.prototype.splice() 来切割,修改数组

参数分析

Array.prototype.splice(start, deleteCount, item1, item2, ...)

删除数组的一个元素(与 delete方法比较)

    let myArr = [1, 2, 3, 4, 5, 6];
    // 目标:删除myArr[3]
    console.log(myArr.splice(3,1));
    console.log(myArr);

    myArr = [1, 2, 3, 4, 5, 6];
    delete myArr[3];
    console.log(myArr[3]);
    console.log(myArr);

从运行结果可以看出,使用 Array.prototype.splice() 可以改变原数组,并放回切割部分形成的新数组

如果将切割长度定位,也就是第二个参数设为1的话,就可以删除指定下标的数值,而如果使用 delete 方法删除某个下标对应的值的话,那个下标对应的值变为 undefined,但数组整体长度不会改变,这样破坏数组结构,不建议使用

这里写图片描述

删除一部分值的同时在当前位置添加新的值

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

    //目标:从myArr[3]开始,删除两个数,并向其位置添加新的值
    console.log(myArr.splice(3, 2, 'a','b','c','d'));
    console.log(myArr);

运行结果

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值