javascript数组操作之清空、定义、删除

作者:袖梨 2022-11-14

我们先来看看js数组清空吧


当一个数组需要清空的时候,很多人使用下面的方法:

a = [];

我们知道javascript变量存储方式分为引用类型和直接量。数组属于对象,即引用类型,引用的是变量指针地址,之所以这样设计也是为了节省内存。


再说到上面的请空数组的方式,如果采用直接赋值一个新数组的方式,那么之前引用的数组可能不会被释放(有其他的引用),例如下面的代码:

代码如下 复制代码


var a = [2,3];
var b = a;
a = [];
console.log(b);

这时候a和b就不是同一个数组了,清空了a而b还是指到之前的引用地址,除非你是故意的,否则这将会有隐患。

所以最佳的请空数组方式是:将length设置为0,即:

代码如下 复制代码
a.length = 0;


js数组创建、访问


数组的创建

代码如下 复制代码

var arrayObj = new Array(); //创建一个数组

var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度

var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); //创建一个数组并赋值



要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。

2、数组的元素的访问

代码如下 复制代码


var testGetArrValue=arrayObj[1]; //获取数组的元素值

arrayObj[1]= "这是新值"; //给数组元素赋予新的值


3、数组元素的添加

代码如下 复制代码

代码
arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度

arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度

arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。

js数组转换


一、数组转字符串(将数组元素用某个字符连接成字符串)

代码如下 复制代码

var a, b;

a = new Array(0,1,2,3,4);

b = a.join("-");

二、字符串转数组(将字符串按某个字符切割成若干个字符串,并以数组形式返回)

代码如下 复制代码

var s = "abc,abcd,aaa";

ss = s.split(",");// 在每个逗号(,)处进行分解。


数组元素删除


var arr=['a','b','c'];  

若要删除其中的'b',有两种方法:

1.delete方法:delete arr[1]

这种方式数组长度不变,此时arr[1]变为undefined了,但是也有好处原来数组的索引也保持不变,此时要遍历数组元素可以才用

代码如下 复制代码
for(index in arr)
{
   document.write('arr['+index+']='+arr[index]);
} 

 

这种遍历方式跳过其中undefined的元素

//经常用的是通过遍历,重构数组.
 

代码如下 复制代码

Array.prototype.remove=function(dx)
 {
  if(isNaN(dx)||dx>this.length){return false;}
  for(var i=0,n=0;i   {
    if(this[i]!=this[dx])
    {
      this[n++]=this[i]
    }
  }
  this.length-=1
 }
 a = ['1','2','3','4','5'];
 alert("elements: "+a+"nLength: "+a.length);
 a.remove(0); //删除下标为0的元素
 alert("elements: "+a+"nLength: "+a.length);


数组常用函数

toString():把数组转换成一个字符串
toLocaleString():把数组转换成一个字符串
join():把数组转换成一个用符号连接的字符串
shift():将数组头部的一个元素移出
unshift():在数组的头部插入一个元素
pop():从数组尾部删除一个元素
push():把一个元素添加到数组的尾部
concat():给数组添加元素
slice():返回数组的部分
reverse():将数组反向排序
sort():对数组进行排序操作
splice():插入、删除或者替换一个数组元素

相关文章

精彩推荐