JS数组的常用方法
1.toString()
将一个数组转换为字符串
语法:var str = 数组对象 . toString
2.join()
将数组中的元素通过指定的分隔符连接到一起,并返回连接后的字符串
语法:var str = 数组对象 . join("&");
3.连接数组
函数:concat()
作用:拼接两个或更多的数组,并返回拼接后的结果
语法:arr1.concat(arr2,arr3);
注意:
(1)concat不会改变现有数组,而是返回拼接后的结果
(2)每个参数不一定非是数组,也可以是普通的数据
练习:
定义两个数组,sel和unsel,将unsel中的数据移入到sel中,最后显示效果为sel内容为sel+unsel,unsel为空数组
function testConcat(){ var sel = ["中国","美国","俄罗斯"]; var unsel = ["朝鲜","越南","老挝"]; sel = sel.concat(unsel); unsel.length = 0; console.log(sel); console.log(unsel); }
4.获取子数组(截取数组)
函数:slice()
作用:从指定数组中,截取几个连续的元素组成的新数组
语法:arr . slice ( start , [ end ] )
start:从哪个下标开始截取,取值为正,从前向后取,取值为负,从后向前算位置(若取负数,最后一个数为-1)
end:指定结束处的下标(不包括该下标),该参数可以省略,如果省略的话,就是从start一直截取到结束
注意:该函数不会影响现有数组,会返回全新的数组
5.修改数组
函数:splice()
作用:允许从指定数组中,删除一部分元素,同时再添加另一部分元素
语法:arr . splice(start , count ,e1,e2……);
start:指定添加或删除元素的起始位置/下标
count:要删除的元素个数,取值为0表示不删除
e1,e2……:要增加的新元素,允许多个
返回值:返回一个由删除元素所组成的数组
注意:splice函数会改变现有数组
6.数组的反转
作用:颠倒数组中元素的顺序
语法:arr . reverse();
注意:该函数会改变当前数组的内容
7.数组排序
函数:sore()
语法:arr . sort(排序函数)
作用:默认情况下,按照元素的Unicode码大小升序排序
特殊:如果想实现对数字的升序和降序的排列,需要自己指定排序函数
ex: var arr = [12,5,6,8]; //排序函数(升序) function sortAsc(a,b){ return a-b; } arr.sort(sortAsc);
原理:指定排序函数 如 sortAsc,定义 两个参数,如 a 和 b。数组会自动传递数据到 sortAsc 里面去,如果返回值是>0的数,则交换两个数的位置,否则不变
使用匿名函数完成排序:
arr.sort(function(a,b){return a-b;});
8.进出栈操作
JS是按照标准的"栈式操作"访问数组的,所有的"栈式操作"的特点都是"后进先出"
(1)push()
入栈,在栈顶(数组的尾部)添加指定的元素,并返回新数组的长度
var arr = [10,20,30]; //向栈顶增加新数据 40 var len = arr.push(40); //len 保存的是 40 入栈后 arr 的长度,值是4
(2)pop()
出栈,删除并返回栈顶的(数组尾部)元素
var arr = [10,20,30]; var r1 = arr.pop();//arr = [10,20] var r2 = arr.pop();//arr = [10] ============================== arr : r1 : 30 r2 : 20
(3)shift()
删除数组头部的(第一个)元素并返回
var arr = [10,20,30]; var r1 = arr.shift(); ============================ arr : [20,30] r1 : 10
(4)unshift()
作用:在数组的头部(第一个)元素位置处,增加新元素
var arr = [10,20,30]; arr.unshift(40); arr : [40,10,20,30]