一、 push()
1. 作用:在数组的尾部添加一个或者多个元素,并且返回数组的新长度
2. 例:
(1) arr.push(6); 在数组的尾部插入一个新元素
(2) arr.push(6,7,8); 在数组的尾部插入多个新元素
二、 unshift()
1. 作用:在数组头部添加一个或多个元素,并返回数组的新长度
2. 例:
(1) arr.unshift(0); 在数组的头部插入一个新元素
(2) var a=arr.unshift(-3,-2,-1,0); 在数组的头部插入多个新元素并返回数组的新长度
三、 pop()
1. 作用:删除数组尾部的最后一个元素,并将这个被删除的元素返回
2. 例:
var a=arr.pop(); 删除数组最尾部的一个元素,并将被删除的元素返回
3. 注意
(1) pop中没有参数
(2) 它不能删除多个元素
四、 shift()
1. 作用:删除数组的第一个元素,并且返回被删除的元素
2. 例:
var a=arr.shift(); 将数组的第一个元素删除,并且返回这个被删除的元素
五、 concat()
1. 作用:
(1) 实现数组的合并,合并后会返回一个新数组,原数组不会发生变化
(2) 将数组与元素合并,将多个元素与原数组合并,返回新数组
(3) 具备复制的功能(浅复制)
2. 例:
(1) var arr2=arr.concat(arr1); 合并数组,返回新数组
(2) var arr3=arr.concat(0,-1,-2); 合并元素
(3) var arr4=arr.concat(0,arr1,["A","B"]); 同时合并元素、已创建的数组和新创建的数组
(4) var arr5=arr.concat(); 直接使用concat,可以实现复制数组
六、 join()
1. 作用:将数组的每个元素以指定的字符连接形成新字符串返回
2. 说明:join的参数是字符串的连接符
3. 例:
(1) var arr=[1,2,3,4,5];var str=arr.join(); 结果为1,2,3,4,5。将数组合并为字符串返回,默认使用逗号连接
(2) var arr=[1,2,3,4,5];var str=arr.join("|"); 结果为1|2|3|4|5
(3) var arr=[1,2,3,4,5];var str=arr.join(""); 结果为12345
-- 特殊的连接符""(空字符串),会将数组的所有元素首尾相连成为字符串
七、 toString()
1. 作用:将数组转换为字符串,但是不能改变连接符
2. 例:
var arr=[1,2,3,4,5];var str=arr.toString(); 结果为1,2,3,4,5
八、 splice()
1. 作用:对数组指定位置实现元素插入,删除,替换的操作,返回被删除元素组成的新数组
2. 语法:splice(起始位置,删除元素数量,要插入的元素);
3. 说明:
(1) 该方法不常用,效率低下,数量不过多(小于万)时使用
(2) 高效方法:将数组分割开,实现要实现的效果,再拼接,数组元素过多(上万条)时使用
4. 例:
(1) var arr1=arr.splice(); 没有任何参数时,什么都没有删除,返回一个空数组
(2) var arr1=arr.splice(0); 将数组所有元素删除,将元素转移到新数组
(3) var arr1=arr.splice(0,3); 从第0位开始删除3个元素,删除的元素返回到新数组
(4) var arr1=arr.splice(-2); 从第几位开始可以是负数,若为负数即从后向前数(倒数)
(5) var arr1=arr.splice(0,1,-1); 从数组第0位开始,删除1个元素,并且在这个位置插入一个元素-1,即实现替换
(6) var arr1=arr.splice(-1,1,0); 将数组最后一位替换成0
(7) var arr1=arr.splice(2,2,10,11); 从数组第2位开始两位元素替换为10,11
(8) arr.splice(2,0,-1); 从第2位开始,什么都不删除,放入-1。即在数组的第2位插入一个元素-1
(9) arr.splice(2,0,-1,8,9); 在数组的第2位插入多个元素
九、 slice()
1. 作用:按指定位置截取复制数组的内容,返回截取出来的数组
2. 语法:slice(m,n);
(1) 从第m位开始到第n位之前,若不写n默认截取到尾部
(2) 只能从前向后截取
3. 例:
(1) var arr1=arr.slice(1,4); 从第1位开始截取到第4位之前
(2) var arr1=arr.slice(); 复制数组arr
(3) var arr1=arr.slice(0); 也是复制数组arr
(4) var arr1=arr.slice(3); 从第3位截取到尾部
(5) var arr1=arr.slice(-2); 从倒数第2位开始截取到尾部
(6) var arr1=arr.slice(-3,-1); 从倒数第3位截取到倒数第1位之前
十、 indexOf()
1. 作用:查找对应元素在数组中的下标,并可以设置从什么位置开始查询,返回位置下标
2. 语法:数组.indexOf(要查询的元素,从哪个下标开始查询);
3. 说明:
(1) 如果查找到返回对应下标,如果查找不到返回-1
(2) 数组中的对象不能被查找到
(3) 若要查找的内容在数组中有多个,则这样写只能查询到第一个,后面的不会查询到
4. 例:
var index=arr.indexOf(4); 在数组中查找元素4
十一、 lastIndexOf()
1. 作用:查找对应元素在数组中的下标,从后向前查找,返回位置下标
2. 语法:数组.lastIndexOf(查找的元素,从什么位置开始查找)
3. 例:
var index=arr.lastIndexOf(3);
十二、 forEach()
1. 作用:遍历数组,不返回值
2. 语法:arr.forEach(function(数组中的元素,每个元素对应的下标,数组自身){})
3. 说明:
forEach循环会跳过空元素
4. 例:
arr.forEach(function(item,index,arr){
console.log(item,index,arr);
});
-- item是数组中的每个元素
-- index是数组的下标
-- arr是当前数组
十三、 map()
1. 作用:遍历数组,返回一个与原数组等长的数组
2. 语法:arr.forEach(function(数组中的元素,每个元素对应的下标,数组自身){})
3. 说明:
(1) map循环会跳过空元素
(2) 在map中使用return就是在对应的下标中添加对应的数据
4. 例:
var arr2=arr.map(function(item,index,arr){
return item+10;
});
十四、 sort()
1. 数值型数据的数组排序
(1) 例:arr.sort(function(a,b){
// return a-b; // return a-b;就是从小到大
// return b-a; // return b-a;就是从大到小
})
2. 字符型数据的数组排序
(1) 例:arr.sort(function(a,b){
// return a.charCodeAt(0)-b.charCodeAt(0); //从小到大
// return b.charCodeAt(0)-a.charCodeAt(0); // 从大到小
})
-- str.charCodeAt(0)将str字符串的第0项转换为Unicode编码
3. 数组中的数据随机乱序
(1) 例:arr.sort(function(){
return Math.random()-0.5;
})
-- Math.random()是0-1之间的任意小数,减去0.5范围就会变为 -0.5——0.5,就会生成一个正数与负数的随机值,且生成正数与生成负数的概率相同
十五、 some()
1. 作用:查找数组中是否有满足条件的元素,如果有就返回true,如果没有就返回false
2. 语法:var bool=arr.some(function(item,index,arr){
return 条件表达式;
});
3. 说明:
遍历数组,如果有一个满足条件的元素,都会直接返回true,不继续向后遍历
4. 例:
var bool=arr.some(function(item,index,arr){
return item>5;
});
十六、 every()
1. 作用:判断数组中是否每一个都满足条件,如果有一个不满足条件,直接跳出,否则所有都满足时返回为true
2. 语法:var bool=arr.every(function(item,index,arr){
return 条件表达式;
});
3. 例:
var bool=arr.every(function(item,index,arr){
return item>2;
});
十七、 filter()
1. 作用:筛选数组中满足条件的内容,并返回
2. 语法:arr.filter(function(item,index,arr){
return 条件表达式;
})
3. 说明:
(1) filter与map的都可以返回满足条件的元素给一个新数组,但是map返回的数组长度与原数组相同
(2) 数据驱动显示:所有的显示内容都是通过数据得到的
4. 例:
var goods=goodsList.filter(function(item){
return item.price>1500;
})
十八、 reduce()
1. 作用:数组迭代器
2. 语法:数组.reduce(回调函数,初始值);
-- 即 数组.reduce(function(累计值,元素,下标,数组){},初始值)
3. 说明:
(1) 如果在函数中使用return,就会将返回值在下次数组的遍历中赋予value。即value就是上次遍历return的值,第0次遍历时(最开始时是数组的第0项)
(2) 如果reduce没有设置初始值,那么累计值是数组的第0位元素,遍历从下标1开始,如果reduce设置了初始值,累计值就是从这个初始值开始,遍历从下标0开始
(3) reduce返回的是一个值,就是遍历到最后一次return出来的值
4. 例:
var sum=arr.reduce(function(value,item){
return value+item;
},100);
十九、 Array.isArray()
1. 作用:判断是否是数组,如果是数组返回true,否则返回false
2. 说明:
(1) 有兼容问题,ES6新方法
(2) 判断是否为数组不可一世使用typeof,因为它不能区分数组和对象
3. 例:
console.log(Array.isArray(arr));