javascript 中Array类型 (数组)


今天来了解一下js中的复杂数据类型中引用类型的Array类型,也就是我们常说的数组。

一、数组的创建。

数组的创建有两种方式。

1. 使用Array构造函数创建。 

  例如 :   var num = new Array('rde','blue','gold') ;             //  这样表示创建了一个数组 ,里面有三个项目,中间用逗号隔开。

  如果提前知道要传入的项目数量,可以传入需要数量项目的值。

  例如: var num = new Array(20);                 // 表示创建了一个保存20个项目的数组。

 

函数内项目数量用length表示:如下所示

var num = new Array(20);
alert(num.length);      //20 表示该数组长度为20 里面有20个项目。
 

另外的话使用Array构造函数时可以省略new 操作符 :如下

var num =new Array('rde','blue','gold');
var num = Array('rde','blue','gold');
 
这两种方式结果都是一样的。

 

 

2.使用字面量的方式创建。    例如:     var num = ['red','blue','gold'];      //该表示用字面量的方式创建了一个数组 num 里面保存了三个项目 分别是 red、blue、gold 。

 

创建一个空的数组       var num = [];             //表示的是一个空数组。

在我们的数组中length 属性是比较有特点的可以通过length来控制数组内项目。

var  num = ['rde','blue','gold'];
num.length=2;
alert(num);

开始长度为3 ,后面赋值给长度为2.

结果第三个元素被排除了。

 

二 、各类官方数组方法的使用。

1. push()   此方法可以在数组的尾部添加任意数量的参数 修改后返回的是数组修改后的长度        注意:返回的是长度 并不是修改后的数组。

如下代码:

var  num = ['rde','blue','gold'];
var num2 =num.push("one","two")
alert(num2);       //5

  

2.pop()  删除数组末尾的数元素并且返回出来 

例如下代码

var  num = ['rde','blue','gold'];
var num2 =num.push("one","two");
var num3 =num.pop();
alert(num3);       //two
alert(num); // rde,blue,gold,one

3. unshift()   在数组前端添加任意数组并返回新的长度。

如下:

var  num = ['rde','blue','gold'];
var num2 =num.unshift("one","two");

alert(num2);  //5
alert(num); //    one,two,rde,blue,gold

  在数组的前端加入了 两个新的元素 , 返回了新的长度5.

4.    reverse()

如下代码:

var  num = [1,2,3,4,5,6,7,8,9];
num.reverse();
alert(num); //  9,8,7,6,5,4,3,2,1

  该方法会是数组中的元素进行反转排序。

var  num = ['one','two','three','four'];
num.reverse();
alert(num); //  four,three,two,one

  

5. sort () 方法  

var  num = [1,3,2,6,5,4,9,8];
num.sort();
alert(num);  //1,2,3,4,5,6,8,9

  可以将无序的数组排成有序。

如果想要按照数组大小排序的话可以如下做法:

var  num = [1,36,2,6,21,41,9,8];
function s(a,b){
    return a-b;     
    
}
num.sort(s);
alert(num);  //1,2,6,8,9,21,36,41

  

只需要sort()方法内调用一个函数 。

 

6.slice() 此方法 基于原数组创建一个新数组  接受一个或者两个参数 第一个参数为要返回的起始位置和结束位置。

var  num = [1,2,3,4,5,6,7,8,9];        //定义了九个参数。
var num2 = num.slice(3);            //  设置一个参数的情况          由于返回值是一个新的数组 所以要定义一个新的变量去接收。
alert(num); //1,2,3,4,5,6,7,8,9 
alert(num2); //4,5,6,7,8,9       从第三个下标开始截取数组中的参数。

  再来观察一下两个参数的情况。

var  num = [1,2,3,4,5,6,7,8,9];        //定义了九个参数。
var num2 = num.slice(3,6);            // 由于返回值是一个新的数组 所以要定义一个新的变量去接收。
alert(num); //1,2,3,4,5,6,7,8,9 
alert(num2); //4,5,6   从下标3开始截取 截取到下标6  注意  第二个下标是不包含的 实际截取为6-1;

  

7.splice()  此方法可以称得上书数组当中最强大的方法了。

使用的方式有3种。 1.删除 2.插入 3.替换。

  7.1 删除 

     splice() 可以删除任意数量的元素。   需要指定2个参数   第一个参数是要删除的第一项位置 和要删除的个数。

  例如:

var num = [1,2,3,4,5,6,7,8,9];   //定义九个元素

num.splice(3,2);    //从下标3开始删除  删除2个元素
alert(num);// 1,2,3,6,7,8,9

  7.2 插入

  splice()  可以向指定位置插入任意个数的元素    需要三个参数  第一个参数指定位置开始插入,第二个参数 需要删除的个数(这里我们写0)也就是不删除任何一个 ,第三个值是需要插入的参数。

例如:

var num = [1,2,3,4,5,6,7,8,9];   //定义九个元素

num.splice(3,0,"一",'one');    // 从下标3开始插入  不删除任何一个  插入新的参数为 一 和 one
alert(num);// 1,2,3,一,none,4,5,6,7,8,9

  

7.3 替换

  splice() 可以想指定位置插入你需要替换的参数 ,同时删除你不需要的参数。 

例如:

var num = [1,2,3,4,5,6,7,8,9];   //定义九个元素

num.splice(3,3,'40','50','60');    // 从下标为3的位置删除3个元素插入3个元素替换原来的元素 。这里可以是替换多个参数。
alert(num);//1,2,3,40,50,60,7,8,9

  

8. indexOf() 位置方法。

 在数组中查找你想要查找的元素,如果有当前元素 则返回该元素所在的下标  如果没有则返回-1

例如:

var num = [1,2,3,4,5,6,7,8,9];   //定义九个元素

var num2=num.indexOf(5);  //在该数组中查找5这个元素  并返回该元素的下标 
alert(num);// 1,2,3,4,5,6,7,8,9
alert(num2);// 该元素的下标为 4

  

如果查找不到该元素 则返回-1.

例如:

var num = [1,2,3,4,5,6,7,8,9];   //定义九个元素

var num2=num.indexOf(100);  //在该数组中查找100这个元素  改数组没有该元素返回-1
alert(num);// 1,2,3,4,5,6,7,8,9
alert(num2);// 没有改元素 返回  -1

如果设置了两值。 第一个值为需要查找的元素  第二个值为查找该元素从下标几开始查找第一个相同的元素。

例如:

 

var num = [1,2,3,4,5,6,7,8,9,5,7,1,2,4,5];  // 该元素中有3个 5这个元素。

var num2=num.indexOf(5,5);  // 查找5这个元素从下标为5开始查找第一个元素5
alert(num);// 
alert(num2);// 9   返回的是查找到的该元素的下标

9.lastIndexOf()  cho  从名字中可以看出是和indexOf相反的操作。

var num = [1,2,3,9,5,6,7,8,9,5,7,1,2,4,5];  // 该元素中有2个 9这个元素。

var num2=num.lastIndexOf(9,8);  //查找9 这个元素  从下标0到下标8中找到最后一个下标为9的元素。
alert(num);// 
alert(num2);//  8 

  

 如果第二个值不写就是在整个数组中找到最后的元素的下标。如果没有该元素则返回-1.

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM