一、JavaScript对象之数组
1、创建数组的方式
(1)使用Array构造函数
语法:new Array()
小括号()说明:
-预先知道数组要保存的项目数量
-向Array构造函数中传递数组应包含的项
(2)使用数组字面量表示法
-由一对包含数组项的方括号[]表示,多个数组之间以逗号隔开
2、数组元素的读写
-读取和设置值时,使用方括号[]并提供相应的索引
说明:索引是从0开始的正整数
3、数组的长度
语法:array.length
功能:获取数组array的长度
返回值:number
说明:
-通过设置length可以从数组的末尾移除或向数组中添加新项。
-把一个值放在超出当前数组大小的位置上时,会重新计算数组长度值,长度值等于最后一项索引加1。
4、数组方法的栈方法
push() unshift() pop() shift()
(1)push()
-语法:
arrayObject.push(newele1,newele2……newelen);
-功能:
把它的参数顺序添加到arrayObject的尾部。
-返回值:
把指定的值添加到数组后的新长度。
-例:
<script> var arr=["HTML" ,"CSS", "JavaScript" , "HTML5","CSS3" ]; arr.push("sass"); console.log(arr); </script>
(2)unshift()
-语法:
arrayObject.unshift(newele1,newele2……newelen);
-功能:
把它的参数顺序添加到arrayObject的开头。
-返回值:
把指定的值添加到数组后的新长度。
-例:
<script> var arr=["HTML" ,"CSS", "JavaScript" , "HTML5","CSS3" ]; arr.unshift("sass"); console.log(arr); </script>
(3)pop()
-语法:
arrayObject.pop();
-功能:
删除数组最后一个元素。
-返回值:
被删除的那个元素。
-例:
<script> var arr=["HTML" ,"CSS", "JavaScript" , "HTML5","CSS3" ]; var n= arr.pop(); console.log(n); </script>
(4)shift()
-语法:
arrayObject.shift();
-功能:
删除数组第一个元素。
-返回值:
被删除的那个元素。
-例:
<script> var arr=["HTML" ,"CSS", "JavaScript" , "HTML5","CSS3" ]; var r=arr.shift(); console.log(r); </script>
5、join() 、reverse()、sort()方法
-join():把数组转换成字符串
-reverse():把数组元素顺序反转
-sort() :对数组元素排序
(1)join()
-语法:
arrayObject.join(separator);
-功能:
把数组所有元素放入一个字符串。
-返回值:
字符串。
-例:
<script> var arr=["HTML" ,"CSS", "JavaScript" , "HTML5","CSS3" ]; var r=arr.join("-"); //括号内为空的话,默认是,(逗号)连接; console.log(r); document.write(r); </script>
(2)reverse()
-语法:
arrayObject.reverse();
-功能:
用于颠倒数组中的元素顺序。(反转)
-返回值:
数组。
-例:
<script> var arr=["a" ,"b", "c" , "d","e" ]; var r=arr.reverse(); console.log(r); </script>
(3)sort()
-语法:
arrayObject.sort(sortby);
-功能:
把数组内元素进行排序。
-返回值:
数组。
-说明:
-即使数组中的每一项都是数值,sort()方法比较的也是字符串。
-sort()方法可以接收一个比较函数作为参数。
-例:
<script> var arr=[10,11,1,2,5,88,9,-1 ]; var r=arr.sort(function (a,b) { return a>b; }); console.log(r); </script>
(4)例子:让我们来封装一个函数,实现不用reverse()方法也能实现数组反转的功能,比如:数组1,2,3,4,5,通过该函数反转后,输出的是:5,4,3,2,1。
<script> function arrReverse(arr){ var newArr=[]; for(var i=0;i<arr.length;i++){ return newArr= arr.sort(function (a,b) { return a<b; }); } } document.write(arrReverse([1,2,3,4,5,6,7,8])); </script>
6、数组方法(concat和slice)
-concat()
-slice()
(1)concat()
-语法:
arrayObject.concat(arrayX,arrayX……arrayX);
-功能:
连接两个或多个数组
-返回值:
数组。
-例:
<script> var arr1=["a","b","c","d",1], arr2=["e","f",1,2], arr3; arr3=arr1.concat(arr2); //arr2后面还可以加数组。 console.log(arr3); </script>
(2)slice()
-语法:
arrayObject.slice(start,end);
-功能:
从已有的数组中返回选定的元素
-参数:
start(必需)规定从何处开始选取,如是负数,从数组尾部开始算起
end(可选)规定从何处结束选取,是数组片断结束处的数组下标
-说明:
-如没指定end,切分的数组包含从start到数组结束懂得所有元素。
-如slice()方法的参数中有一个负数,则用数组长度加上该数来确定相应的位置
-返回值:
数组。
-例;
<script> var arr1=[1,2,3,4,5,6,7,8,9], arr3; arr3=arr1.slice(-6,8); console.log(arr3); </script>
7、数组方法(splice)
(1)删除
-语法:
arrayObject.splice(index,count);
-功能:
删除从index处开始的零个或多个元素。
-返回值:
含有被删除的元素的数组。
-说明:
-count是要删除的数量.如果设置为0,则不会删除。如果不设置,则从index处开始删除所有值。
-例:
<script> var arr1=["a","b","c","d",1], arr3; arr3=arr1.splice(1,2); console.log(arr3); </script>
(2)插入
-语法:
arrayObject.splice(index,0,item1……itemx);
-功能:
在指定位置插入值
-返回值:
数组
-参数:
index:起始位置
0:要删除的项数
item1……itemx :要插入的项
-例:
<script> var arr1=["a","b","c","d","e"]; arr1.splice(2,0,"m","n"); console.log(arr1); </script>
(3)替换
-语法:
arrayObject.splice(index,count,item1……itemx);
-功能:
在指定位置插入值,且同时删除任意数量的项。
-返回值:
从原始数组中删除的项(如果没有删除的项,则返回空数组)
-参数:
index:起始位置
count:要删除的项数
item1……itemx :要插入的项
-例:
<script> var arr1=["a","b","c","d","e"]; arr1.splice(2,2,"m","n","j"); console.log(arr1); </script>
8、数组方法(indexOf和lastIndexOf)
(1)indexOf
-语法:
arrayObject.indexOf(searchvalue,startIndex);
-功能:
从数组的开头(位置0)开始向后查找
-返回值:
number。查找的项在数组里面的位置,没有找到的情况下返回-1;
-参数:
searchvalue:必需,要查找的项;
startIndex:可选,起点位置的索引。
-例:
<script> var arr1=[1,2,3,4,5,6,7]; var pos=arr1.indexOf(3); console.log(pos); </script>
(2)lastIndexOf
-语法:
arrayObject.lastIndexOf(searchvalue,startIndex);
-功能:
从数组的末尾开始向后查找
-返回值:
number。查找的项在数组里面的位置,没有找到的情况下返回-1;
-参数:
searchvalue:必需,要查找的项;
startIndex:可选,起点位置的索引。
-例:
<script> var arr1=[1,2,3,4,5,6,7]; var pos=arr1.lastIndexOf(5); console.log(pos); </script>