遍历数组的方法
1. for循环进行遍历
for(var i=0;i<=数组名.length;i++){ //尽量使用let进行i的声明,涉及块级作用域的问题
console.log(i)
}
2. for...in遍历数组
for(let key in 数组名){
console.log(key) //使用for..in进行遍历时的 key时数组的每一项对应的下标
}
3. forEach() 进行数组的遍历
数组名.forEach((item,index,arr)=>{ //直接使用箭头函数,forEach()中的参数是函数类型的, //数组有几个元素,函数执行几次
console.log(item) //数组的每一项
console.log(index) //数组的每一项对应的下标
console.log(arr) //当前遍历的数组
})
4. map() 进行数组的遍历
map()和forEach()的区别:map()存在返回值,且返回的是一个数组,数组中每一项的值为 undefined;
let result=数组名.map((item,index)=>{
console.log(item);
console.log(index);
})
console.log(result) //result是一个数组,数组中的每一个元素都是undefined
5. every() 进行数组的遍历
应用场景: 购物车的反选,以及全选的勾选与否的实现
特点:当所有的数组元素都满足条件时,返回的是true; 只要有一个不满足条件就返回false
var result=数组名.every(item=>{
return 条件表达式
})
console.log(result) //此时的result 是一个 布尔值;接收的是 条件表达式运行的结果
6. some() 进行数组的遍历
应用场景: 购物车的反选,以及全选的勾选与否的实现
特点:只要有一个满足条件就返回true;当所有的数组元素都不满足条件时,返回的是false
var result=数组名.some(item=>{
return 条件表达式
})
console.log(result) //此时的result 是一个 布尔值;接收的是 条件表达式运行的结果
数组使用的方法
添加数组元素
数组名.push() 尾部添加元素,原数组被改变,返回的是新数组的长度
数组名.unshift() 头部添加元素,原数组被改变,返回的是新数组的长度
数组名[下标]='新增的内容' //直接进行添加
var arr = [1, 2, 3, 4, 5, 6]
//尾部添加
console.log(arr.push(7)); //打印的是新数组的长度
console.log(arr); //打印的是 新数组
//头部添加
console.log(arr.unshift(0));
console.log(arr);
//直接进行添加
arr[7] = 8
console.log(arr);
删除数组元素
数组名.pop() 尾部删除元素,原数组被改变,返回的是被删除的那个元素
数组名.shift() 头部删除元素,原数组被改变,返回的是被删除的那个元素
var arr=[1,2,3,4,5,6]
//头部删除
console.log(arr.shift()); //1 返回的是被删除的那个元素
//尾部删除
console.log(arr.pop()); //6
数组拼接
数组名.concat() 连接两个或多个数组,对原数组无影响,返回的是一个新数组
var arr = [1, 2, 3, 4, 5, 6]
var arr2 = [999]
console.log(arr.concat(arr2)); // [1, 2, 3, 4, 5, 6, 999]
返回的是拼接后的数组
slice()
数组名.slice(begin,end) 截取数组 包头不包尾 begin,end都为下标;
对原数组无影响,返回的被截取的部分
slice()方法可以接受一或两个参数,即要返回项的起始和结束位置。在只有一个参数的情况下, slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。
出现负数时,将负数加上数组长度的值 来替换该位置的数
var arr = [1, 2, 3, 4, 5, 6]
console.log(arr.slice(1)); //[2, 3, 4, 5, 6]
console.log(arr.slice(1, -2)); //[2, 3, 4]
console.log(arr.slice(-4, -1)); //[3, 4, 5]
splice()
数组名.splice(begin,length) 删除数组元素,也可以添加,替换数组元素 length代表要截取的个数,对原数组有影响
删除:指定 2 个参数:要删除的第一项的位置和要删除的项数。 arr.splice( 1 , 3 )
插入:可以向指定位置插入任意数量的项,只需提供 3 个参数:起始位置、 0(要删除的项数)和要插入的项 arr.splice( 2,0,4,6 )
替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定 3 个参数:起始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等。
arr.splice(1,1,2,4)
var arr = [1, 3, 5, 7, 9, 11];
//删除 //返回值是,截取的部分
var arrRemoved = arr.splice(0, 2);
console.log(arr); //[5, 7, 9, 11]
console.log(arrRemoved); //[1, 3]
//添加 ///返回值是 被添加的位置
var arrRemoved2 = arr.splice(2, 0, 4, 6);
console.log(arr); // [5, 7, 4, 6, 9, 11]
console.log(arrRemoved2); // []
//替换 //返回值是 被替换的部分
var arrRemoved3 = arr.splice(1, 1, 2, 4);
console.log(arr); // [5, 2, 4, 4, 6, 9, 11]
console.log(arrRemoved3); //[7]
检测数组的方法
1. instanceof() 返回值为布尔值
2. isArray() 返回值为布尔值
eg:数组名.isArray()
数组排序
sort方法 排序
数组名.sort(function(a,b){
return a-b 升序
return b-a 降序
})
数组筛选
filter():“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。
返回值是 过滤后的数组
数组去重
set()代表的是一个*不含有重复元素*的**集合**,set本身的含义是集合的意思
var 旧数组名=[1,2,1,5,6,2,3,8,9,2,9];
var set=new Set(旧数组名) //前面的set只是一个变量名
注意:console.log(set)得到的是一个集合,且长度的属性为size,不是length
var 新数组名 =Array.from(set)
console.log(新数组名)
数组转换
字符串转换为数组 split("分隔符")
数组转换成字符串 join(" "),括号里面写字符串 ("要加引号"), 规定个连接字符,默认的是逗号( ,)