近来闲来无事,小码哥突发奇想,手一哆嗦,就把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
原文地址:http://oxoxo.blog.51cto.com/9301862/1600091