首页 > 代码库 > JS 数组及其方法浅析

JS 数组及其方法浅析

近来闲来无事,小码哥突发奇想,手一哆嗦,就把javascript中的数组及其方法小小总结了一下!

在JS里我们很抽象的理解万物皆对象,这大概也是,我们现在在写Js代码的时候,都善于用面向对象的方式写程序的根由吧....不多说,数组Array也是对象无疑了!

首先,我们肯定应该知道什么是数组?其又是如何定义的?都有哪些优点?这都是我们关心的,,,


数组定义:数组说白了就是数据的集合,在内存中,是一块连续内存的地址;JS中数组分为一维数组和多维数组。


定义方式:

1、直接量定义:var Arr=[ele,ele1,ele2,,,,eleN];

2、构造函数定义:var Arr1=new Array(ele,ele1,ele2,ele3,,,,,eleN);

3、定义数组长度:var Arr2=new Array(3);//这个方法其实是根据数组的长度属性length值得一个巧妙运用,类似构造函数定义法;但又由于参数不同,而得到的结果不同。此处只有一个参数,就表明该方法定义的是有三个元素的数组。希望大家注意。


数组方法的运用方式,我们都知道,在面向对象中,有“属性”和“方法”一说。本质上我认为他们没啥区别。

数组名.方法();


数组由于其方法众多,因此,在JS中有着举足轻重的地位,经常会被用到。

下面是鄙人对数组的各个方法的浅显总结,主要用来自我温习,如果读者有看到的,也希望能给大家带来帮助,不足之处,望谅解哈!


数组方法的实例解析:完整HTML+JS代码

<!doctype html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>JS 数组及其方法</title>

</head>


<body>

<script>

var Arr=[12,25,66,88,45,53,31,10];//直接量定义数组

var Arr1=new Array(33,25,55,46,102,87,92,20);//构造函数法定义数组

var Arr2=new Array(3);//加入构造函数这样参数就一个,则是定义一个有三个元素的数组。里面的3表示的是数组长度。

//向数组里末尾添加新元素push()

//Arr.push(ele);

//var Arr_New=Arr.push(100);

//alert(Arr_New);//返回的是数组的长度length值。

//alert(Arr);//返回添加新元素后的新数组,原数组被改变


//向数组头部添加新元素unshift()

//Arr.unshift(ele);

//var Arr_New1=Arr.unshift(100);

//alert(Arr_New1);//同样返回的是新数组的长度length值。

//alert(Arr);//返回的是添加新元素后的新数组。原数组被改变


//删除数组最后一项元素pop()

//Arr.pop();

//var Arr_New2=Arr.pop();

//alert(Arr_New2);//返回的是被删除的元素,并作为新数组返回。

//alert(Arr);//返回的是删除新元素后的数组,并把删除新元素后的数组返回,不是作为新数组返回的。原数组被改变


//删除数组第一项元素shift()

//Arr.shift();

//var Arr_New3=Arr.shift();

//alert(Arr_New3);//返回删除掉的元素,并作为新数组返回

//alert(Arr);//返回删除第一项元素剩下的数组,不作为新数组返回。原数组被改变


//向数组中添加一个或多个新元素,或者删除哪几项元素splice()

//Arr.splice(index,num,ele,,,,eles);//根据参数的不同及控制,可以实现添加删除元素

//var Arr_New4=Arr.splice(2,0,1000,2000);//四个参数,表示在指定位置添加新元素

//alert(Arr_New4);//返回空

//alert(Arr);//返回添加新元素后的新数组,更新原来数组

//var Arr_New5=Arr.splice(3,4);//从第三项开始,包括第三项,删除后面的四个元素。

//alert(Arr_New5);//返回被删除的四个元素,并以新数组返回

//alert(Arr);//返回删除后剩下的数组,原数组被改动


//数组向字符串转化join()

//Arr.join("");//可以有参数,参数一般为空格、逗号、或连字符等

//var Arr_New6=Arr.join(‘,‘);

//alert(Arr_New6);//返回字符串

//alert(Arr);//返回字符串,原数组不存在


//字符串转化成数组split()

//var Str="g|a|jljgioaj|gijasg|jal|jg";

//Arr.split("");//可以有参数,参数一般难为“|”、空等

//var Str_New=Str.split("|");

//alert(Str_New);//返回的是新生成的数组

//alert(Str);


//数组拼接concat()

//Arr.concat(eArr);

//var eArr=[112,114,168,546,598,665];

//var Arr_New7=Arr.concat(eArr);//参数同样是数组

//alert(Arr_New7);//返回拼接后的新数组

//alert(Arr);//输出原数组,表明原数组没变


//数组正向排序sort()

//Arr.sort();

//var Arr_New8=Arr.sort();//有兴趣的同学可以用原生的JS写个排序的方法。

//alert(Arr_New8);//返回被排好序的新数组,但该数组不是又从新生成的,而是直接替换掉原数组了

//alert(Arr);//返回原数组,原数组被改变,变成排好序的数组。


//数组反向排序(也叫倒序)reverse()

//Arr.reverse();//该方法经常会配合sort()方法一起用,从而能够得到从大到小的倒序

//var Arr_New9=Arr.reverse();

//alert(Arr_New9);//返回序列倒置的数组,该数组不是新数组,而是直接替换原来数组。

//alert(Arr);//原数组被改变,并返回


//复制数组字段,并返回复制新生成的数组slice()

//Arr.slice(index,,,indexs);//一般参数可以有一个或两个,一个的话表示从哪个开始复制直到最后,包括开始的那个元素。要是两个的话,从哪复制到哪个元素的前一个元素,即包括开始元素,不包括最后元素。

//var Arr_New10=Arr.slice(2,5);//表示从第二个开始复制,到第五个,但包括第二个,不包括第五个。

//alert(Arr_New10);//返回包括三个元素的新数组。

//alert(Arr);//返回原数组,原数组不变。


//遍历数组方法

//因为数组有一个长度值length。所以可以用for()循环和for..in遍历等方法遍历数组,看一下两个结果,是一样一样的额

//for(var i=0;i<Arr.length;i++){document.write(i+":"+Arr[i]+"<br>");};

//for(var i in Arr){document.write(i+":"+Arr[i]+"<br>");};


</script>

</body>

</html>


以上大家看了会一目了然,还可以拿去直接验证!不用谢哈!!!

本文出自 “关注技术专注前端” 博客,请务必保留此出处http://oxoxo.blog.51cto.com/9301862/1600091

JS 数组及其方法浅析