追加元素类:
push():在数组的末尾追加数组,返回值为新数组的长度
unshift():在数组内部的最前面追加元素,返回值为新数组的长度
删除元素类:
pop():删除数组的最后一个元素,返回值为删除的元素
shift():删除数组的第一个元素,返回值为删除的元素
splice( x , y, z ):从指定位置删除元素,后两个参数省略,则从删除位置开始,一直删到最后 。第一个参数表示:要删除的位置索引值。 第二个参数表示:删除个数。第三个参数表示:替换为的元素
const arr = ["Banana", "Orange", "Apple", "Mango"]
const str = arr.splice(1,1) // ["Banana", "Apple", "Mango"]
const str = arr.splice(1,0,"kimi") // ["Banana","kimi","Orange", "Apple", "Mango"]
const str = arr.splice(1,1,"kimi") // ["Banana","kimi","Apple", "Mango"]
获取索引类
indexof ( 数组元素 ):
检测当前值在数组中第一次出现的位置索引
参数:array.indexOf(item,start) item:查找的元素 start:字符串中开始检索的位置
返回值:第一次查到的索引,未找到返回-1
是否改变原数组:不改变
let arr = ['a','b','c','d','e','a','f'];
console.log(arr.indexOf('c')) //2
console.log(arr.indexOf('a',3)) //5
lastIndexof( 数组元素 ):
检测当前值在数组中最后一次出现的位置索引
参数:array.lastIndexOf(item,start) item:查找的元素 start:字符串中开始检索的位置
返回值:第一次查到的索引,未找到返回-1
是否改变原数组:不改变
let arr = ['a','b','c','d','e','a','f'];
console.log(arr.lastIndexOf('c')) //2
console.log(arr.lastIndexOf('f',1)) //-1
遍历数组类
forEach():
循环遍历数组每一项
参数:函数 ary.forEach(function(item,index,ary){}) item:每一项 index:索引 ary:当前数组
返回值:无
是否改变原数组:不改变
forEach中不能使用continue和break,forEach中不能跳出,只能跳过(return跳过)
let arr = ['a','b','c','d'];
let item = arr.forEach((item,index)=>{
console.log(item,index)
})
**find():**循环遍历数组,查找满足条件的第一个值并返回,函数内部为判断条件,函数同forEach()方法
// find() 方法为数组中的每个元素都调用一次函数执行:
// 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
// 如果没有符合条件的元素返回 undefined
const arr=[1,2,3,4,5,6,7,8,9,10]
arr.find( item => {
return item > 5
})
// 输出结果
6
**findIndex():**循环遍历数组,查找满足条件的第一个值,返回其索引值,函数内部为判断条件,函数同forEach()方法
let num = [10,3,5,15,100,1]
const arr = num.findIndex(function(item, index){ // 15
return item >= 15;
});
console.log(arr) // 3
**some():**循环遍历数组,判断是否有满足条件的值,只要一个就返回true,否则为false,函数内部为判断条件,函数同forEach()
lat arr = [1, 2, 3, 4, 5];
lat arr2 = arr.some( (item) => {
return item < 3;
});
console.log(arr2); //true
lat arr3 = arr.some( (item) => {
return item < 1;
});
console.log(arr3); // false
**every():**循环遍历,判断所有值是否满足条件,有一个不满足就返回false,否则返回true,函数内部为判断条件,函数同forEach()
const arr = [1,2,3,4,5,6]
const str = arr.every( item => item > 0 )
console.log(str); // ture
**filter():**循环遍历数组,筛选数组中满足条件的元素,并组成一个新数组返回,函数内部为需要判断的条件,同forEach()
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let arr2 = arr.filter((item, index) => {
return index % 3 === 0 || item >= 8
});
console.log(arr2); //[1, 4, 7, 8, 9, 10]
**map():**通过指定函数处理数组的每个元素,并返回处理后的数组
原理: map作用是映射调用此方法的数组,不会改变原始数组,返回原始数组每一项的操作,组成一个新数组,长度和原始数组一致
方法:
//item => 数组的每一项
//index => 数组每一项的索引
//arr => 原数组
Array.map((item,index,arr)=>{})
实例:
let arr = [1,2,3]
let newArr = arr.map((item,index)=>{
return item + 1
})
//newArr = [2,3,4]
**reduce():**将数组元素计算为一个值(从左到右)
其他类
**reduceRight():**将数组元素计算为一个值(从右到左)
**toString():**把数组转换为字符串,并返回结果
**valueOf():**返回数组对象的原始值
includes():
判断一个数组是否包含一个指定的值
参数:指定的内容
返回值:布尔值
是否改变原数组:不改变
// ps:includes(item, startIndex); item: 查找的元素; startIndex: 开始查找的位置
let a = [ 1 , 2 , 3 , 4 , 5];
let b = a.includes(4); // b: true
let b = a.includes(3, 3); // b: false
排序翻转类
reverse():
把数组倒过来排列
参数:无
返回值:倒序后新数组
是否改变原数组:改变
const arr=[1,2,3]
const newArr = arr.reverse()
console.log(newArr) // [3,2,1]
sort():
对数组的元素进行排序(默认是从小到大来排序 并且是根据字符串来排序的)
参数:可选(函数) 规定排序规则 默认排序顺序为按字母升序
返回值:排序后新数组
是否改变原数组:改变
sort在不传递参数情况下,只能处理10以内(个位数)数字排序
let arr = [32,44,23,54,90,12,9];
arr.sort(function(a,b){
// return a-b; // 结果[9, 12, 23, 32, 44, 54, 90]
// return b-a; // 结果[90, 54, 44, 32, 23, 12, 9]
})
console.log(arr);
连接截取类
**concat(连接的数组):**连接数组,返回值为新数组
const arr = ["1", "2"]
const str = ["5", "6", "7"]
const newArr = arr.concat(str)
console.log(newArr); // ["1", "2","5", "6", "7"]
**join(‘连接的符号’):**将数组用符号连接,数组转化成字符串的方式
// ps : 默认是逗号,也可以自定义连接符
const arr=[1,2,3]
const str = arr.join('')
console.log(str); //1,2,3
console.log(arr); //[1,2,3]
**slice():**截取数组,返回被截取元素组成的新数组
// ps: 包含第一个参数,不包含第二个参数
const arr=["Banana","Orange","Apple","Mango","Apple","Orange"]
const str = fruits.slice(2,5)
console.log(str) //返回一个新数组 ["Apple","Mango","Apple"]