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

it2022-05-05  205

前言: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 Folder/打杂人/ console.log(decodeURI(url)) // http://www.aerchi.com/My Folder/打杂人/

打杂人

2019-0


最新回复(0)