js 数组删除元素,并获得真实长度

前言:js数组删除一般采用数组的 splice 方法和 delete 方法,但是采用 delete 方法后直接数组.kength 来获取数组长度是获取不了真实长度的,下面详细讲解一下。

一、splice 方法

  splice ( index , len , [ item ] )   该方法会改变原始数组。

  index:数组开始下标。len:替换/删除的长度。item:替换的值,删除操作的话 item为空

  举例:

        var arr = ["11", "22", "33", "44", "55"];
        //清空整个数组
        arr.splice(0, arr.length);
        console.log(arr);
        //[]

        //删除一个元素
        var arr = ["11", "22", "33", "44", "55"];
        arr.splice(1, 1);
        console.log(arr);
        // ["11", "33", "44", "55"]

        //删除一个,增加两个
        arr.splice(1, 1, "88", "99");
        console.log(arr);
        //["11", "88", "99", "44", "55"]

 

 二、delete 删除数组元素

  只是被删除的元素变成了 undefined,其他的元素的键值还是不变。

        var arr = ["11", "22", "33", "44", "55"];
        console.log(arr);
        //["11", "22", "33", "44", "55"]

        delete arr[2];
        console.log(arr);
        //["11", "22", empty, "44", "55"]

        for(var i = 0; i < arr.length; i++){
          console.log(arr[i]);
        }
        // 11
        // 22
        // undefined
        // 44
        // 55

打印出来的结果:可以看出 delete 方式不会改变数组的长度,而且删除的元素只会变成 undefined。

  这时想获取数组真实长度,可以采取下面这种方式:

      arr = ["11", "22", "33", "44", "55"]
      console.log(arr)
      //["11", "22", "33", "44", "55"]
      console.log(arr.length)
      // 5

      delete arr[2]  //true
      console.log(arr)
      // ["11", "22", empty, "44", "55"]

      var length = 0;
      for(var a in arr){
        length ++;
      }
      console.log("数组真实长度: " + length);
      //数组真实长度: 4

3.js 对中文字符 解码和编码

//编码
decodeURI(编码前字符);

//解码
decodeURIComponent(编码后字符);

var url ="http://www.aerchi.com/My Folder/打杂人/"

console.log(encodeURI(url))
// http://www.aerchi.com/My%20Folder/%E6%89%93%E6%9D%82%E4%BA%BA/

console.log(decodeURI(url))
// http://www.aerchi.com/My Folder/打杂人/

打杂人

2019-0

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值