数组的方法(15个)
对象数据类型;数组成员有一个与之对应的索引length : 代表数组成员的个数;操作改变数组一些方法;这些数组的方法都是内置的;
// 1. 方法作用;
// 2. 方法的参数
// 3. 方法返回值
// 4. 原有的数组是否发生改变;
1.push
1): 向数组末尾新增一项;2): 参数是新增的那一项;可以传多个;3): 新数组的数组成员的个数;4): 原有数组发生改变;
var ary = [12,89,89,36,0,"dsh",true,99]; ary.push(100) ary[ary.length] = 100; console.log(ary);
2.pop
1) : 删除数组的最后一项2) : 不需要传参数3) : 被删除的那一项4) : 原有数组发生改变;
ary.pop(); delete ary[ary.length-1] console.log(ary[7]); ary.length--;
3:unshift
1): 向数组开头新增一项;2): 需要传参数3): 新数组的数组成员个数4): 原有数组发生改变;
ary.unshift(12);
console.log(ary);
4.shift
1): 删除数组的第一项2): 不需要传参3): 被删除的那一项4): 原有数组的发生改变;
ary.shift();
5.slice
1) : 数组的截取2) :slice(m,n): 从数组索引m开始,截取到索引n,但是不包含n;[前包后不包]slice(m) : 从索引m开始,截取到末尾;slice():数组的克隆 slice(0);// 索引负数: 让当前length+负数;3) : 返回值是截取的数组4) : 原有数组不发生改变;
var ary = [12,89,89,36,0,"dsh",true,99]; ary.slice()// 不传参;复制克隆 ary.slice(1)// 从索引1开始,截取到数组的末尾 ary.slice(2,6)// 从索引2开始,截取到索引8;但是不包含8; //支持负数 ary.slice(6,4) // []
6.splice
1) : 删除数组中的某几项2) : splice(m,n): 从索引开始,删除n个splice(m) : 从索引m开始删除到末尾;splice(0):splice(m,x,n);替换从索引m开始,删除x个,用n替换;3): 返回值;删除那几项,并且以数组返回4) : 原有数组发生改变;
ary.splice(0);// 从索引0开始,删除到数组的末尾 ary.splice(1,4) // 从索引1开始,删除4项 ary.splice(1,3,5,19)// 替换 ary.splice(1,0,5)// 在索引1的前面新增一项数字5; console.log(ary);
7.sort
1) : 数组排序2) :参数
1.sort() : 只能数组成员是相同位数的数组 2.sort(function(a,b){return a-b}) 从小到大排序 3.sort(function(a,b){return b-a})从大到小3) : 是排序之后的数组4) : 原有数组发生改变;
ary.sort() : 只能排数组成员位数相同的数组; var ary = [12,8,99,67,85,1,35,66,"78"]; var ary = [1,8,5,3,2]; var ary = [123,678,987,567,345,234]; ary.sort(function (a,b) { return a-b; }); var newAry = ary.sort(function (a,b) { return b-a; }); console.log(newAry);
8.reverse
1): 将数组颠倒过来2): 不需要传参数3): 数组成员顺序倒过来之后的数组4): 原有发生改变;
console.log(ary.reverse());
console.log(ary);
9.concat :
1) : 数组的拼接2) :
1.不传参数: 数组的克隆 2.传参数,(数组、每一项);把传入的实参拼接新的数组中;3) : 拼接之后的新数组4) : 原有数组不发生改变;
var ary = [12,8,99,67,66,66,85,1,35,66,"78",66]; var ary1 =[1,2,3] console.log(ary.concat([100,200,null])); var a = ary.concat(); console.log(ary.concat());
10.join
1) : 把数组成员按照特定的字符连接成一个字符串;2) :
1.不传参数,会默认按照逗号分开 2.传参数,(特定的字符)3) : 拼接之后的字符串4) :原有数组不发生改变;
console.log(ary.join("+"));//"12+8+99+67+85+1+35+66+78" console.log(ary.join(""));//"1289967851356678" console.log(ary.join());//"12,8,99,67,85,1,35,66,78"
11.indexOf
1) : 检测数组成员在数组中第一次出现的索引位置; 判断当前项是否在数组中存在;如果不存在,返回-1;2): 需要参数3): 返回在数组中第一次出现的索引;4): 原有数组不发生改变;
console.log(ary.indexOf(66)); console.log(ary.indexOf(666)); console.log(ary.indexOf(888));
12.lastIndexOf
1) : 检测数组成员在数组中最后一次出现的索引位置; 判断当前项是否在数组中存在;如果不存在,返回-1;2): 需要参数3): 返回在数组中最后一次出现的索引;4): 原有数组不发生改变;
console.log(ary.lastIndexOf(66));
13 .map
1) : 遍历数组和映射2): 需要参数3) : 映射之后的数组4): 原有数组不发生改变;
var ary = [12,8,99,67,66,66,85,1,"78",66]; var total= null; var mn = ary.map(function (item,index) { console.log(item);//遍历数组;第一个参数就是数组成员 console.log(index);// 代表数组成员的索引 return "<li></li>>"; // 求和 total +=Number(item); console.log(total); console.log(mn);
14.forEach
1) : 遍历数组;没有返回值;2) : 需要参数3) : 返回值是undefined4) : 原有数组不发生改变;
var bhh = ary.forEach(function (item,index) { console.log(item); return 10; }) console.log(bhh);//undefined console.log(ary);
15.toString
1) : 转字符串2) : 不需要参数3) : 返回一个去了中括号之后的字符串4) : 原有数组不变;
var ary = [1,23,8,9,90] console.log(ary.toString());// "1,23,8,9,90" console.log([12].toString());// "12" console.log([].toString());// "" console.log(ary);