转载自:JavaScript中15种数组的使用方法总结_anqiaoyun的博客-CSDN博客
本文总结了JavaScript中的15种数组的使用方法,
如果需要ES6中的数组使用的方法:find
、filter
、every
、some
、includes
、reduce
,请点击这里
1.push 向数组的后面添加一项或多项
参数可以是一个也可以是多个,
返回值为新数组的长度
修改原数组
var ary = [1,2];
var num = ary.push('a');
console.log(num); //3
console.log(ary); //[1, 2, "a"]
2.pop 删除数组的最后一项
没有参数
返回值为被删除的项
修改原数组
var ary = ["a", "b",1,2];
var a = ary.pop();
console.log(ary);//["a", "b", 1]
console.log(a); //2
3.unshift 往数组的前面添加一项或多项
参数可以是一个也可以是多个
返回值为新数组的长度
修改原数组
var ary = ["a", "b",1,2];
var num = ary.unshift('3','4');
console.log(num); //6
console.log(ary); //["3", "4", "a", "b", 1, 2]
4.shift 删除数组的第一项
不需要参数
返回值为被删除的那一项
修改原数组
var ary = ["a", "b","c","d"];
var ary1 = ary.shift();
console.log(ary1); //a
console.log(ary); //["b", "c", "d"]
5.splice 可以往数组的某一个位置添加一项或多项,还可以删除和替换项
返回值是个数组,数组中为被删除的项
修改原数组
参数:
1个参数,ary.splice(0),从0开始删除到最后
2个参数,ary.splice(1, 2), 1是索引,2删除的个数
多个参数,ary.splice(1, 2, “x”, “y”…),1是索引,2是删除的个数,“x”,“y”,…添加到原来删除的位置;
6.indexOf 返回字符串或数组中检索指定字符第一次出现的位置,不存在返回下标-1,存在返回第一次匹配的索引值
参数:被查询的项;
返回值:第一次匹配的索引;不存在返回下标-1;
不修改原数组;
7.lastIndexOf 返回字符串或数组中检索指定字符最后一次出现的位置,不存在返回下标-1,存在返回第一次匹配的索引值
参数为被查询的项
返回值:索引值,不存在返回下标-1
不修改原数组
var array = ['abc','def','xyz','def'];
var f = array.indexOf('def');
var l = array.lastIndexOf('def');
console.log(f); //1
console.log(l); //3
console.log(array); //["abc", "def", "xyz", "def"]
8.slice 截取
返回值为截取的数组
不修改原数组
没有参数表示数组的克隆
参数为负数时,默认加上数组的长度处理成正数
var arr = [1,2,3,4,5,6,7];
var newarr = arr.slice(1,5); //包前不包后
var newarr1 = arr.slice(-3,-1);
console.log("arr" + arr); //1,2,3,4,5,6,7
console.log("newarr" + newarr); //2,3,4,5
console.log("newarr1" + newarr1);
9.sort 排序 修改原数组
返回值为排序后的数组
没有参数时只能排序数组成员项是相同位数的数字
var arr = [1,100,33,77,500,66];
arr.sort();
console.log(arr);//[1, 100, 33, 500, 66, 77]
arr.sort(function(a,b){
//从小到大排
return a-b;
//从大到小排
return b-a;
});
console.log(arr);
10.reverse 倒序 不需要传参数
修改原数组
var arr = [1,100,33,77,500,66];
arr.reverse();
console.log(arr);
11.concat 不修改原数组,返回值为拼接的新数组
var arr = [1,2];
var arr1 = arr.concat([3,4],[5,6],[7,8]);
console.log(arr1);
concat不传参数时表示数组的克隆
var arr2 = [1,3,5];
var arr3 = arr2.concat();
console.log(arr2 == arr3); //false
console.log(arr2);//[1, 3, 5]
console.log(arr3); //[1, 3, 5]
//这也是复制数组的方法
var arr4 = [100,200,300];
var arr5 = arr4;
console.log(arr4 == arr5); //true
console.log(arr5);
12.join 将数组拼接成字符串,
不修改原数组
var ary = ['2019','06','10']
var ary1 = ary.join("-")
console.log(ary1);//2019-06-10
不传参数时默认用逗号隔开
var ary2 = ary.join();
console.log(ary2);//2019,06,10
var ary3 = ary.join("");
console.log(ary3);//20190610
13.map 映射 根据原来数组的每一项映射一个新数组
参数为一个回调函数
返回值为映射得到的新数组,不修改原数组
数组的length是几,回调函数就执行几次
var ary = ["a","b","c","d","e"];
var ary1 = ary.map(function(v,i,arr){
//v value 遍历数组的每一项
console.log(v);
//i index 遍历数组的索引
console.log(i);
//arr 原数组
console.log(arr);
return v+'o'; //["ao", "bo", "co", "do", "eo"]
//返回值为新数组中对应的每一项
});
console.log(ary1);
14.forEach 用来遍历数组
参数为一个回调函数
特点:没有返回值
不修改原数组
数组的length是几,回调函数就执行几次
var arry = [11,22,33,44];
var arry1 = arry.forEach(function(v,i,arr){
//v value 遍历数组的每一项
console.log(v);
//i index 遍历数组的索引
console.log(i);
//arr 原数组
console.log(arr);
return v+'o'; //没有返回值
});
console.log(arry1); //undefined
forEach相当于for循环
for (var i = 0; i < arry.length; i++) {
arry[i];
i;
arry;
}
15.toString 将数组转化成字符串 不修改原数组
不需要参数,返回值是一个字符串
var array = ["q","w","e","r"];
var array1 = array.toString();
console.log(array1);//q,w,e,r
注意啦:
类数组不能使用数组的方法
类数组指arguments,document.getElementsByTagName获取的类数组
网友评论