目录
数组方法较多,就举例出来几种常用的方法以:
1.方法名 2.方法作用 3.返回值 4.原有数据是否被改变
这四个角度以代码的形式直接来看吧!
// 先创建一个数组
var arr = [1, 2, 3, 4, 5]
1.//join() 就是把数组转换成字符串,然后给他规定个连接字符,默认的是逗号。 不改变原数组
console.log(arr.join('-'));//1-2-3-4-5
console.log(arr);//(5) [1, 2, 3, 4, 5]
2.//push() 末尾添加 改变原数组 返回添加后的length
console.log(arr.push(6, 7));//7
console.log(arr);//(7) [1, 2, 3, 4, 5, 6, 7]
3.//pop() 末尾删除 改变原数组 返回被删除的元素
console.log(arr.pop());//7
console.log(arr);//(6) [1, 2, 3, 4, 5, 6]
4.//shift() 头部删除 改变原数组 返回被删除的元素
console.log(arr.shift());//1
console.log(arr);//(5) [2, 3, 4, 5, 6]
5.//unshift() 头部添加 改变原数组 返回添加后的length
console.log(arr.unshift(1));//6
console.log(arr);//(6) [1, 2, 3, 4, 5, 6]
6.//sort() 排序 改变原数组 返回排序之后的新数组
var arr1 = [8, 5, 93, 3, 0, 22]
console.log(arr1.sort((a, b) => (a - b)));//(6) [0, 3, 5, 8, 22, 93]
console.log(arr1);//(6) [0, 3, 5, 8, 22, 93]
7.//reverse() 反转数组项的顺序 改变原数组 返回倒序之后的新数组
console.log(arr.reverse());//(6) [6, 5, 4, 3, 2, 1]
8.//splice() 删除、插入和替换 改变原数组 返回改变后的新的数组
// 删除
console.log(arr.splice(1));//(5) [5, 4, 3, 2, 1]
// 插入
let arr2 = [5, 6, 7, 8, 9]
let arrAll = arr2.splice(0, 0, 100)//向第一位添加一个数值
console.log(arr2);//(6) [100, 5, 6, 7, 8, 9]
let arrAll2 = arr2.splice(-1, 0, 10)//(7) [100, 5, 6, 7, 8, 10, 9] 从最后一位开始向前添加一个数值
console.log(arr2);
console.log(arrAll);//[]
// 替换
let arr3 = [1, 2, 3, 4, 5, 6]
let addArr = arr3.splice(0, 1, 100)
console.log(arr3);//(6) [100, 2, 3, 4, 5, 6]
9.//forEach() 循环 不改变原数组 参数有value(必选)、index(可选)、arr(可选)数组对象本身、this(可选)、执行回调函数时的
let arr4 = [1, 2, 3, 4, 5]
arr4.forEach((value, index) => {
console.log(value);//返回数组中的各项的值
console.log(index);//返回各项值的下标
})
console.log(arr4);//(5) [1, 2, 3, 4, 5]
10.//map() 映射 对数组中的每一个元素都进行处理,返回新的数组 不改变原数组
let arr5 = [1, 2, 3, 4, 5]
let resArr = arr5.map(item => item * 2)
console.log(resArr);//(5) [2, 4, 6, 8, 10]
console.log(arr5);//(5) [1, 2, 3, 4, 5]
11.//filter() 过滤原数组,返回新数组 不改变原数组
let filArr = arr5.filter(item => item > 2)
console.log(filArr);//(3) [3, 4, 5]
console.log(arr5);//(5) [1, 2, 3, 4, 5]
12.//concat() 合并多个数组,返回新数组 不改变原数组
let arr6 = [1, 2, 3]
let arr7 = [4, 5, 6]
let arr8 = [7, 8, 9]
console.log(arr6.concat(arr7, arr8));//(9) [1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(arr6);//(3) [1, 2, 3]
13.//indexOf() 查找数组中某个元素第一次出现的索引值 不改变原数组
let arr9 = [1, 2, 3, 4, 3, 2, 1]
console.log(arr9.indexOf(1));//下标 0
console.log(arr9);//(7) [1, 2, 3, 4, 3, 2, 1]
14.//lastIndexOf() 查找数组中某个元素最后一次出现的索引值 不改变原数组
console.log(arr9.lastIndexOf(2));//下标 5
console.log(arr9);//(7) [1, 2, 3, 4, 3, 2, 1]
15.//slice() 拷贝数组元素[两个参数,一个是复制索引开始一个是复制索引结束] 不改变原数组
console.log(arr9.slice(0, 2));//[1, 2]返回包含下标0和下标1的值,不包含下标2。 包左不包右的形式
console.log(arr9);//(7) [1, 2, 3, 4, 3, 2, 1]
16.//toString() 数组转换成字符串,并返回结果。 不改变原数组
console.log(arr9.toString());//1,2,3,4,3,2,1
console.log(arr9);//(7) [1, 2, 3, 4, 3, 2, 1]
17.//some() 检测数组中是否存在满足条件的元素[返回值是布尔值] 不改变原数组
console.log(arr9.some(value => value > 5));//false
console.log(arr9.some(value => value > 2));//true
console.log(arr9);//(7) [1, 2, 3, 4, 3, 2, 1]
18.//Array.isArray() 判断一个元素是否为数组 返回值也是布尔值
console.log(Array.isArray([]));//true
console.log(Array.isArray({}));//false