这篇文章主要总结javascript中数组中常用的方法,Array()是我们在js中常常写到的代码,因此在此简单总结一下。
什么是数组: 简单讲一下,就是一个大变量, 它里面可以存储很多的值。
一、数组的声明及遍历
1.数组的声明
var a=[1,"a","zer0",9];
var b = new Array(1,"a",3);
console.log(a);//[1,"a","zer0",9]
console.log(b);//[1,"a",3]
2.数组的遍历
var arr = new Array(1,"a",3);
for (var i =0;i< arr.length;i++) {
console.log(arr[i]);// 1,1,3
}
二、操作数组的常用方法
1.添加数组元素
(1).push() 后面推进去
push()方法向数组的末尾添加一个或多个元素,并返回新的长度
var arr =[1,2,3]
arr.push(7);
console.log(arr); //[1,2,3,7]
(2).unshift() 从数组的前面放入
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度
var arr =[1,"a",6,3]
arr.unshift("Z");
console.log(arr); //["Z",1,"a",6,3]
2.删除数组元素
(1).pop() 删除最后一个元素
var arr =[1,"a",6,3]
arr.pop();
console.log(arr); //[1,"a",6]
(2).shift() 删除第一个元素
var arr =[1,"a",6,3]
arr.shift();
console.log(arr); //["a",6,3]
3.连接两个数组
concat()该方法用于连接两个或多个数组。它不会改变现有的数组,而仅仅会返回被连接数组的一个副本
var arr =[1,"a",6,3]
var b=["a","b"];
var c = arr.concat(b);
console.log(c); //[1,"a",6,3,"a","b"]
4.从已有的数组中返回选定的元素
slice()方法基于当前数组中的一或多个项创建一个新数组。
slice()方法可以接收一或两个参数,即要返回的起始和结束位置。
arrayObject.slice(start,end)
start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
返回值
返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
*/
注意:在只有一个参数的情况下,slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。
有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项.slice()方法不会影响原始数组。
var arr =[1,"a",6,3,"green","black"]
//在只有一个参数的情况下
var newArr = arr.slice(0);
console.log(newArr);//[1,"a",6,3,"green","black"]
// 参数有两个的情况下
var newArr1 = arr.slice(2,4);
console.log(newArr1); //[6,3]
5.从数组中添加/删除项目,然后返回被删除的项目。
splice()的主要用途是向数组的中部插入项。注释:该方法会改变原始数组。
arrayObject.splice(index,howmany,item1,…..,itemX)
index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, …, itemX 可选。向数组添加的新项目。
使用方法:
(1).删除:可以删除任意数量的项,只需指定2个参数:要删除的第一项的位置和要删除的项数.
列如:splice(0,2)会删除数组中的前两项.
var arr =[1,"a",6,3,"green","black"]
var newArr = arr.slice(0);
newArr.splice(0,2);
console.log(newArr);//[6,3,"green","black"]
(2)插入:可以向指定位置插入任意数量的项,只需要提供3个参数:起始位置,0(要删除的项数)和要插入的项.
如何要插入多个项,可以再传入第四,第五,以至任意多个项.
// 从当前数组的位置3(从0开始)开始插入两项"哈","加2项"。 参数0表示不删除
newArr.splice(3,0,"哈","加2项");
console.log(newArr);//[1,"a",6,"哈","加2项",3,"green","black"]
(3).替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需要提供3个参数:起始位置,要删除的项数和要插入的任意数量的项.
插入的项数不必和和删除的项数相等。
//会删除当前数组位置2的项,然后再从位置2开始插入字符串"哈"和"删2位置"
newArr.splice(2,1,"哈","删2位置");
console.log(newArr);//[1,"a","哈","删2位置",3,"green","black"]
*注:插入和替换方式相同,不同点就在于第2参数,为0表示插入不删除,大于0表示要删除的数量
splice()方法始终都会返回一个数组,该数组中包含从原始数组中删除的项(如果没有删除任何项,则会返回一个空数组).*
6.位置方法
1)indexOf():从数组的开头(位置0,即索引号都是从0开始的) 开始向后查找,可返回某个指定的字符串值在字符串中首次出现的位置,返回的是个数值。
var arr =[1,"a",3,"green","black"]
// 返回"a"在数组中的位置,参数1代表开始检索的位置
var a = arr.indexOf("a",1);
console.log(a);//1
2)lastIndexOf():从数组的末尾开始向前查找
var arr =[1,"a",3,"green","black"]
var a = arr.lastIndexOf(3);
console.log(a);//2
*注意:
这两个方法都返回查找的项在数组中的位置,或者在没找到的情况下返回-1.
在比较第一个参数与数组中的每一项时,会使用全等操作符,也就是说,要求查找的项必须严格相等*
7.数组排序
(1).将数组反序 reverse()
var a = [1,2,3,4,5];
var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]
(2).对数组进行排序 sort()
var a = [1,2,3,4,5];
var b = a.sort(); //a:[1,2,3,4,5] b:[1,2,3,4,5]
8.把数组转化为字符串 join()
join()将数组各个元素是通过指定的分隔符进行连接成为一个字符串。
arrayObject.join(separator)
数组名.join(符号):数组转换为字符串
参数 separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
var arr =[1,2,3]
var a = arr.join("-")
console.log(a);//字符串:1-2-3
var b = arr.join();
console.log(b);//默认用,分割 字符串: 1,2,3
8.把字符串转换为数组 split()
split() 方法用于把一个字符串分割成字符串数组
stringObject.split(separator,howmany)
参数 separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
howmany 可选。该参数可指定返回的数组的最大长度
var txt = "1-2-3";
var a = txt.split("-");
console.log(a);//["1","2","3"]
var b = txt.split("");
console.log(b);//["1",”-”,"2",”-”,"3"]