1.indexOf()查找某一个元素在数组中出现的位置(第一个)
语法: arr.indexOf(元素,[开始查找的起始下标]);
//找不到返回-1
var arr = [1,2,3,4,5,6];
var res = arr.indexOf(3);
var res1 = arr.indexOf(7);
console.log(res) 打印结果:2 // 3对应的下标为2
console.log(res1) 打印结果:-1 // 没找到
2.forEach()变历数组
语法: arr.forEach(function(数组的每一项, 对应下标, 当前数组){
// 代码段
});
var arr= [1,2,3,4,5,6];
arr.forEach(function(value,index,brr){
console.log(value + "--" + index);
console.log(brr);
});
3.map让数组每一个元素都让一个函数去处理,处理后的每一个新元素组成一个新数组并返回
语法:arr.map(function(v){
// 对v进行处理并返回处理后的每个v组成的数组
});
var arr = [10,20,30,40];
var arr1 = arr.map(function(value){
return value + value * 0.3
});
console.log(arr1); 打印结果:[13, 26, 39, 52] //返回新数组
4.filter()过滤数组元素,让满足条件的所有元素组成一个新数组并返回
语法: arr.filter(function(数组的每一项, 对应下标, 当前数组){
// 筛选条件
});
var arr = [10,20,30,40];
var arr1 = arr.filter(function(value){return value>20;
});
console.log(arr1); 打印结果:[30, 40] //返回新数组
5.some 方法先遍历数组,如果至少有一个元素满足条件,则返回true,否则返回false。
arr.some(function(数组的每一项,对应下标){
// 逻辑代码
});
var arr = [1,2,3,4,5,6];
var res = arr.some(function(item,index){
if(item>5){
return true;
}else{
return false;
}
});
console.log(res); 打印结果:true //有一个条件满足
再例如:
var i = 0;
[1,2,3].some(function(item,idx){
i = idx;
return item == 5;
})
console.log(i); 打印结果:2 //遍历完了还没找到5,输出最后一个值的下标(3的下标2)
6. every 方法先遍历数组,判断所有元素是否满足条件,返回布尔值
语法: arr.every(function(数组的每一项,对应下标){
// 逻辑代码
});
var arr = [2,3,4,5,6];
var res = arr.every(function(item){
return item>1;
});
console.log(res); 打印结果:true // 所有条件都满足
7.find 方法返回数组中满足条件的第一个值,找不到元素则返回false,找到了就返回这个值
语法: arr.find(function(数组的每一项,对应下标,此数组){
// 逻辑代码
});
var arr = [2,4,6,10,15,21];
var f = arr.find(function(element, index, array){
return element > 10;
});
console.log(res); 打印结果:console.log(f); 15 // 找到了,返回满足条件的第一个值
8.findIndex 方法返回数组中满足条件的第一个值的下标,找不到元素则返回1
语法: arr.findIndex(function(数组的每一项,对应下标,此数组){
// 逻辑代码
});
var arr = [2,4,6,10,15,21];
var f = arr.findIndex(function(element, index, array){
return element > 10;
});
console.log(res); 打印结果:console.log(f); 4 //找到了,返回满足条件的第一个的下标
9.of 将一组值转换成数组,类似于声明数组
语法: Array.of(要转换的值);
let str = 'shuzu'
console.log(Array.of(str)) 打印结果: ['11']
等价于
console.log(new Array('shuzu')) 打印结果: ['shuzu']
// 但是有点区别
console.log(new Array(2)) // [empty × 2] 是个空数组,但是length是2
console.log(Array.of(2)) // [2]
总结
数组的常用方法改不改变原始数组很关键
push()
pop()
unshift()
shift()
concat()-----💢不改变原始数组
splice()
slice()------💢不改变原始数组
sort()
reverse()
join()-------💢不改变原始数组