数组的常用方法
1.数组常用方法
1.map()方法
map() 方法返回一个新数组
,数组中的元素为原始数组元素调用函数处理后的值。
语法:
array.filter(function(currentValue,index,arr), thisValue)
参数说明:
第一个参数为: 当前正在遍历的元素
第二个参数为: 当前元素索引
第三个参数为: 原数组本身
var array1 = [1,4,9,16];
const map1 = array1.map(x => x *2);
console.log(map1);
结果为:
Array [2,8,18,32]
2.filter()方法
创建一个新数组
,新数组中的元素是通过检查指定数组中符合条件的所有元素;- 不会对空数组进行检测;
- 不会改变原始数组。
语法:
array.filter(function(currentValue,index,arr), thisValue)
参数说明:
第一个参数为: 当前正在遍历的元素
第二个参数为: 当前元素索引
第三个参数为: 原数组本身
let arr = [2, 3, 4, 5, 6]
console.log(arr.filter(i => i > 3)) // [4,5,6]
3.indexOf()方法
语法:
stringObject.indexOf(item,start) ;
第一个参数必选,你要查找的元素;
第二个参数,可选的整数参数,0到 stringObject.length-1;若不写从首字母开始索引。
var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple","Mango"];
var a=fruits.indexOf("Apple",4)
从第5为开始查Apple第一次出现的位子。检索位数是从0不是1.
如果不存在,就返回-1
4.find()
类似于filter方法,但返回第一个符合条件的元素,filter返回一个数组,find返回一个object
。
let arr = [2, 3, 4, 5, 6]
console.log(arr.find(item => item > 4)) // 5
5.reduce()
它有两个参数,第一个是回调函数,第二个initValue是初始值,可选的。current表示数组内的元素,即当前值。
6.slice()
slice(start,end):方法可从已有数组中返回选定的元素,返回一个新数组
,包含从start到end(不包含该元素)的数组元素。
let arr = [2, 3, 4, 5, 6]
console.log(arr.slice(1,3)) //[3, 4]
7.splice()
splice():该方法向或者从数组中添加或者删除项目,返回被删除的项目
。
该方法会改变原数组
let arr = [2, 3, 4, 5, 6]
console.log(arr.splice(1,1)) //[3] 删除第二位的值,返回被删除的值
console.log(arr.splice(1,0,8)) //在第2位添加值
console.log(arr.splice(1,1,8)) //把第二位的值替换为8
console.log(arr)
8.some()
当数组中有一个符合条件,则返回true,否则返回false。
let arr = [2, 3, 4, 5, 6]
console.log(arr.some(item => item == 4)) //true
9.every()
功能类似于some,但要求每一个元素都符合条件才返回true。
let arr = [2, 3, 4, 5, 6]
console.log(arr.every(item => item > 1))
9.includes()
是否包含指定的元素值。
let arr = [2, 3, 4, 5, 6]
console.log(arr.includes([2, 3, 4, 5, 6])) //false
console.log(arr.includes(2)) //true
false的原因:因为指向不同的引用地址
2.改变数组长度的方法
1.改变数组
- shift:将第一个元素删除并且返回删除元素,空即为undefined
- unshift:向数组开头添加元素,并返回新的长度
- pop:删除最后一个并返回删除的元素
- push:向数组末尾添加元素,并返回新的长度
- reverse:颠倒数组顺序
- sort:对数组排序
- splice:splice(start,length,item)删,增,替换数组元素,返回被删除数组,无删除则不返回
2.不改变数组
- concat:连接多个数组,返回新的数组
- join:将数组中所有元素以参数作为分隔符放入一个字符
- slice:slice(start,end),返回选定元素
- map,filter,some,every等不改变原数组