数组常用方法
数组常用的方法
1、push();
作用: 在数组的尾部添加一个或多个元素,返回新长度
1 var arr = [1,2,3,4,5,6]; 2 var arr1 = arr.push(1); 3 console.log(arr1)//显示结果7
2、pop();
作用:将数组的最后一个元素删除,返回被删除的元素
删除最后一个元素,也可以用array.length-1;就是把数组的长度减一,然后就能实现删除最后一个元素的效果了。
区别:array.length-1速度更快,但是没返回值,也就是说删的什么就不知道了。
var arr = [1,2,3] var arr1 = arr.pop() console.log(arr1)//显示结果3
3、unshift()
作用:在数组的头部添加一个或多个元素,返回新长度
var arr = [1, 2, 3]; var arr1 = arr.unshift(1); console.log(arr1); //4
4、shift()
作用:将数组的第一个元素删除,返回被删除的元素
var arr = [1, 2, 3]; var arr1 = arr.shift(); console.log(arr1); //1
//注:添加/删除元素,splice()也可以做到,详细下文说。
5、concat()
作用:数组和数组/元素合并,返回新数组,原数组不会发生变化
语法:arrar1.concat(array)
注意:
①可以合并元素,类似arrar1.concat(array,1,2,3);
②可使用arrar1.concat()复制数组;
var arr = [1, 2, 3]; var arr1 = [4, 5]; var arr2 = arr.concat(arr1); console.log(arr2); //[1,2,3,4,5]
6、join()
作用,把数组转换为字符串,默认“,”分隔;
注意:
①当传入的链接符为“”(空字符)时,会将数组元素首尾相连返回字符串
②想把数组转换为字符串也可以用toString();效果相同。
var arr = [1, 2, 3]; var arr1 = arr.join("|"); console.log(arr1); //1|2|3
7、splice(startIndex,delNum,addEle)
// startIndex为开始下标,delNum为删除的元素个数,addEle为添加的元素,可多个
作用:可实现增、删、改。返回被删除的元素组成的新数组
简单的说就是从startIndex下标开始,按delNum的数值删除元素个数,然后再加addEle补在这个位置,addEle不是说只是一个元素,他可以多个,多少都行。
注:
①没有任何参数时,返回空数组,var arr1 = arr.splice();
②只有0,var arr1 = arr.splice(0);将所有元素转移到新数组,就是说原数组被删空了,就是从位置0删到底,返回删除元素组成的新数组
③开始位置可以为负数,索引方向会变成后->前
var arr = [1, 2, 3]; var arr1 = arr.splice(); console.log(arr1); //[] var arr2 = arr.splice(0) console.log(arr2,arr); //[1,2,3] 此时的arr为[] var arr3 = [1,2,3] var arr4 = arr3.splice(0,1,2); console.log(arr4); //[1]
8、slice(fromindex,toindex)
// fromindex为开始下标,toindex为结束下标
作用:数组截取,截取一段数组,从fromindex截取到toindex,不含toindex。即“前包后不包“
var arr = [1, 2, 3]; var arr1 = arr.slice(0,2); console.log(arr1,arr); //[1,2] [1,2,3]
9、把类似于数组的列表(这里的arr)转换为数组
①from()
语法:Array.from(arr)(es6写法)
②array.prototype.slice.call(arr) (es5写法)
注意:两个写法的作用相同
10、indexof()
作用:查元素是否在数组内,返回对应下标,查不到的时候,返回-1;
var arr = [1,2,1, 3]; var arr1 = arr.indexOf(1,0); console.log(arr1); //indexOf(1,0);1为查的元素,0为开始检索下标,返回第一次检索到的下标,这里是0
11、lastindexof()
作用:和indexof()相同,查元素是否在数组内,返回对应下标,查不到的时候,返回-1,不过lastindexof()是反向检索,就是从最后一个元素开始检索
12、遍历数组
①foEach()
arr.forEach(function(item,index,arr){
//添加不了return
//没返回值
})
var arr = [1,2,1, 3]; var arr1 = arr.forEach(function(item){ console.log(item) }); console.log(arr1); //打印元素1 2 1 3
②map()
arr.forEach(function(item,index,arr){
//可以添加return
//有返回值,返回长度和原数组相同
//ie8以上支持
})
var arr = [1,2,1, 3]; var arr1 = arr.map(function(item){ console.log(item) }); console.log(arr1); //打印元素1 2 1 3,并且会有返回一个数组,长度为4,元素全是undefined
13、sort()
作用:数组排序
①array.sort(function(a,b){
//return a-b;表示从小到大
//return b-a;表示从大到小
//只适用用数值型
})
②arr.sort(function(a,b){
//return a.charcodeat(0)-b.charcodeat(0);表示从小到大
//return b.charcodeat(0)-a.charcodeat(0);表示从大到小
//适用字符型
})
var arr = [1,2,1, 3]; var arr1 = arr.sort(function(a,b){ return a-b }); console.log(arr1); //[1,1,2,3]
14、some()
作用:遍历数组判断条件,只要有一个元素满足条件,则返回true,否则返回false;
语法:arr. some (function(item,index,arr){
return 条件;
})
var arr = [1,2,1, 3]; var arr1 =arr.some(function(item,index,arr){ return item>2; }) console.log(arr1); //true
15. every()
作用:遍历数组判断条件,所有元素都满足条件,返回true,只要有一个不满足则返回false;
语法:arr.every(function(item,index,arr){
return 条件;
})
var arr = [1,2,1, 3]; var arr1 =arr.every(function(item,index,arr){ return item>2; }) console.log(arr1); //false
16、filter()
作用:过滤,筛选数组中满足条件的元素,返回所有满足条件的元素
arr.filter(function(item,index,arr){
return 条件;
})
var arr = [1,2,1, 3]; var arr1 =arr.filter(function(item,index,arr){ return item>1; }) console.log(arr1); //[2,3]
17、reduce()
作用:遍历数组,返回value的值
语法:arr.reduce(function(value,item,index,arr){
console.log(value,item,index,arr)
},startvalue)
注:
startvalue可以写,也可以没有;
① startvalue没有时,value刚开始是arr[0];之后都是undefined;可通过return value,把上一次的返回值在下一次遍历的时候赋给value
② 有startvalue时,value刚开始是startvalue,一样可通过return value,把上一次的返回值在下一次遍历的时候赋给value
var arr = [1,2,1, 3]; var arr1 =arr.reduce(function(value,item,index,arr){ console.log(value) }) console.log(arr1); //1 undefined undefined undefined
18、判断是不是数组
① Array.isArray(arr)
//这种事Es6写法
②首先数组是对象,用typeof判断确定为对象
然后要与对象区分,通过转换为字符串
数组.toString()——>字符串(显示的数组内容)
对象.toString()——>字符串([string string])
③ 判断数组的构造函数是数组
arr.constructor===Array
浙公网安备 33010602011771号