简单归纳整理一下数组常用的一些方法
会改变数原数组的方法
1. Array.push():在数组的后面添加新加元素,返回新增的元素;
2. Array.pop():在数组后面删除最后一个元素,并返回被删除的元素;
3. Array.shift():在数组后面删除第一个元素,并返回被删除的元素;
4. Array.unshift():将一个或多个元素添加到数组的开头,返回新增的元素;
5. Array.splice(n, m,e):返回选中的元素组成的新数组,会改变原数组,
// Array.splice(n)表示从数组的第n项开始删除到最后
let arr = [1, 2, 3, 4];
let newArr= arr.splice(2);
console.log(newArr,arr) // [3,4] [1,2]
// Array.splice(n,m)表示从数组第n项开始删除到第m项,
let arr = [1, 2, 3, 4];
let newArr= arr.splice(1, 2);
console.log(newArr,arr) // [2,3] [1,4]
// Array.splice(n,m,e)表示从数组的第n项开始删除m位,并添加元素e到数组内
let arr = [1, 2, 3, 4];
let newArr= arr.splice(1, 2, 9);
console.log(newArr,arr) // [2,3] [1,9,4]
6. Array.concat():将多个数组拼接成一个数组,返回拼接后新的数组
7. Array.forEach():遍历数组的每一个元素,根据需求加以处理,直接改变原数组,没有返回值
8. Array.sort():将数组进行排序,返回排序后的数组,会直接改变原数组
// 顺序
let arr = [2,9,4,8,6,1]
let newArr = arr.sort((a,b)=>{ return a - b })
console.log(newArr, arr) // [1, 2, 4, 6, 8, 9] [1, 2, 4, 6, 8, 9]
// 逆序
let arr = [2,9,4,8,6,1]
let newArr = arr.sort((a,b)=>{ return b - a })
console.log(newArr, arr) // [9, 8, 6, 4, 2, 1] [9, 8, 6, 4, 2, 1]
不改变原数组的方法
1. Array.map():将数组中的每个元素调用一个提供的函数,结果作为一个新的数组返回,并没有改变原来的数组
2. Array.filter():将所有元素进行判断,将满足条件的元素作为一个新的数组返回
3. Array.reverse():将数组翻转
4. Array.find():查找出数组中符合条件一项,有符合条件的返回该元素,否则返回undefined;
Array.findIndex():与find方法类似,返回值不同,有符合的元素返回索引,否则返回-1
5. Array.some():将所有元素进行判断,如果存在任意一个元素满足判断条件,返回 true并且剩余的元素不会再执行检测,否则返回 false
6. Array.every():将所有元素进行判断,如果存在一个元素不满足判断条件,返回false并且剩余的元素不会再执行检测,如果全部满足才会返回true
7. Array.slice(n,m):将数组从索引为n的一项截取到索引为m,返回被截取的部分组成新数组,不改变原数组
8. Array.join():将以指定字符拼接成字符串并返回,不改变原数组
9. Array.indexOf():查找数组中符合条件的第一项,返回它的索引值,也可以用于字符串,lastIndexOf方法相同,返回符合条件的最后一项的索引
10. Array.isArray():判断一个对象是不是数组,返回的是布尔值,不改变原数组
11. Array.toString() : 将数组转化为字符并返回
let arr = [1,2,3]
console.log(Array.isArray(arr),arr) // true [1,2,3]
console.log(arr.toString(),arr) // 1,2,3 [1,2,3]
12. Array.reduce():是所有元素调用的返回函数,返回符合条件的组成新数组, 不会改变原数组
// 数组的reduce方法可以做的事情很多,基本语法如下:
let arr = ['a','b','c','d','e'];
arr.reduce((prev,cur,index,arr)=>{
...
return prev;
}, init);
// prev:上一次调用回调时的返回值,或者初始值 init
// cur:当前元素
// index:当前元素的索引,如果有 init 值,索引为0,否则为1
// arr:原数组
// init:初始值
// 注意:在reduce内部一定要有一个返回值,以供下一次调用
// 简单以数组去重为例,体现一下用法
let arr = ['a','b','c','a','c','a'];
let newArr = arr.reduce((prev, cur)=> {
prev.indexOf(cur) === -1 && prev.push(cur);
return prev;
},[])
console.log(newArr,arr) // ['a', 'b', 'c'] ['a', 'b', 'c', 'a', 'c', 'a']