1、静态函数
(1)判断是否为数组
语法:Array.isArray(数组名)
返回:
判断 | 返回 |
---|---|
是数组 | true |
不 是数组 | false |
var arr=[1,2];
console.log(Array.isArray(arr));//true
2、实例函数
(1)查找数组元素
语法(1):arr.indexOf(数组元素,index)【查找时从前往后查找】
// 数组元素:表示想要查找的元素
//index:从下标为index的地方开始查找
返回:
判断 | 返回 |
---|---|
数组中有查找的元素 | 查找到的第一个元素的下标 |
数组中没有查找的元素 | -1 |
var arr=[1,2,3,4,5];
// 下标 0 1 2 3 4
console.log(arr.indexOf(2));//1
console.log(arr.indexOf(6));//-1
语法(2): arr.lastIndexOf(数组元素,index)【查找时从后往前查找】
其他同arr.indexOf()一样。
(2)尾部添加数据
语法:arr.push(任意个实参数据…);
作用:将任意个实参数据添加到当前数组的尾部。
返回: | 当前数组的新长度 |
---|
var arr=[1,2,3];
console.log(arr.push('f'));//4(返回的是当前数组的长度)
console.log(arr)//[1,2,3,'f']
(3)尾部删除数据
语法:arr.pop();没有参数
作用:一次只能删除一个元素。
返回: | 被删除的元素 |
---|
var arr=[1,2,3];
console.log(arr.pop());//3(返回被删除的元素)
console.log(arr);//[1,2]
(4)删除头部元素
语法:arr.shift();【没有参数】
作用:删除当前数组的第一个元素。
返回: | 被删除的元素 |
---|
var arr=[1,2,3];
console.log(arr.shift());//1
console.log(arr);//[2,3]
(5)添加头部元素
语法:arr.unshift(元素1,元素2,…)
作用;将实参中的数据添加到数组的头部。
返回: | 数组的新长度 |
---|
var arr=[1,2,3];
console.log(arr.unshift(5,6));//5(返回数组的新长度)
console.log(arr);//[5,6,1,2,3]
(6)增加删除数组元素
语法:arr.splice(开始位置的下标,删除的个数,添加的元素1,添加点元素2,…)
作用:对数组进行增删改查
判断 | 返回 |
---|---|
如果删除了数组元素 | 删除的元素 |
如果删除个数为0 | 空数组 |
var arr=[1,2,3];
//删
console.log(arr.splice(0,1));
console.log(arr);//[2,3]
//增
console.log(arr.splice(1,0,'f'));//[]
console.log(arr);//[2,'f',3]
//改
console.log(arr.splice(1,1,'a'));//['f']
console.log(arr);//[2,'a',3]
//查
console.log(arr.splice(0,0));//[]
console.log(arr);//[2,'a',3]
(7)分割数组
语法;arr.join(l连接符)
作用:将当前数组的所有元素,顺序的使用实参符号作为连接符连接成一个字符串。
连接符:是一个字符串,可以省略。如果省略,将使用逗号作为默认的连接符。
返回: | 连接成的字符串 |
---|
var arr = ["a","b","c","d"];
var result = arr.join("-");
console.log (result);//a-b-c-d
var result = arr.join();
console.log (result);//a,b,c,d
var result = arr.join("");
console.log (result);//abcd
(8)获得子数组
语法:数组.slice(start,end)【包含开始,不包含结束】
start:开始索引。
end:结束索引。
作用:获得当前某一部分的子数组。
返回: | 截取到的子数组 |
---|
注意:①截取子串不会影响原数组数据。
②参数可以使用负数作为参数、负数代表了从最后一个元素往前数。
-1代表了最后一个元素,-2代表倒数第二个元素,以此类推。
var arr=[1,2,3,4,5,6];
console.log(arr.slice(2,5))//[3,4,5]
(9)对数组进行翻转
语法:数组.reverse()
作用:对当前数组进行翻转
返回: | 当前被翻转的数组 |
---|
var arr = ["a","b","c"];
arr.reverse();
console.log (arr);//["c","b","a"]
//后续的知识,对字符串进行翻转
var str = "abc";
str.split("")
console.log (str.split("").reverse().join(""));
(10)对当前数组进行升序排列
语法:数组.sort(compareFn)
作用:对当前数组进行升序排列
返回: | 排序后的当前数组 |
---|
注意:①如果compareFn省略,sort会默认排序。其默认排序的规则是:将所有元素都转为字符串,然后再排序。
②如果希望使用自定义的排序规则,那么就需要定义回调函数。
sort方法底层根据compareFn的返回值来确定。
返回值 | 表明 |
---|---|
正数 | 第一个参数大于第二个参数 |
负数 | 第一个参数小于第二个参数 |
0 | 第一个参数等于第二个参数 |
因此:compareFn被称为比较器函数。
var arr = [2, 14, 6, 8, 15, 3, 12, 4, 10];
arr.sort ();
console.log (arr);//[10, 12, 14, 15, 2, 3, 4, 6, 8],没有参数的sort会根据第一个数字进行排序。
//升序
var compareAscFn=function(num1,num2){
return num1-num2;
}
arr.sort(compareAscFn);
console.log(arr),
//降序
arr.sort(function(num1,num2){
return num2-num1;
});
console.log(arr)
(11)遍历当前数组对象
语法:数组.forEach(callbackFn);
作用:用来遍历当前数组对象的。
callback:要求要有三个参数
value:代表了当前数组中的每一个元素
index:代表了元素的下标
array:代表了当前数组
(12)对数组进行整体的某些操作
语法:数组.map(callbackFn)
作用:可以对当前数组的元素进行整体的某些操作。
返回: | 操作之后的新数组 |
---|
//对奇数下标的元素*2,对偶数下标的元素/2.
var arr=[1,2,3,4,5,6,7,8,9];
var result=arr.map(function(value,index,array){
if(index%2===0){
return value>>1;
}else{
return value<<1;
}
});
console.log(result);
(12)过滤器
语法:数组.filter(callbackFn);
作用:将当前数组中满足条件的元素过滤出来添加到一个新数组中。
返回: | 过滤得到的新数组 |
---|
(function(){
//过滤arr中的所有质数
var arr=[];
for(var i=1;i<100;i++){
arr.push(i);
}
var result=arr.filter(function(){
return isPrime(value);
})
})();
function isPrime(num){
if(num<2)
return false;
for(var i=2;i<num;i++){
if(num%i===0){
return false;
}
}
return true;
}
(13)查找满足的条件
语法:arr.find(callbackFn);
作用:在当前数组中查找第一个满足条件的元素。
条件 | 返回 |
---|---|
找到满足条件的元素 | true |
没有找到满足条件的元素 | undefined |
(function(){
//找7和5的公倍数
var arr=[];
for(var i=56;i<60;i++){
arr.push(i);
}
var resullt=arr.find(function(value){
//如果回调函数一旦返回true,当前的value就是需要查找的值。
return value%5===0&&value%7===0;
});
console.log(result);
})();
语法:arr.findIndex(callbackFn);
作用:在当前数组中查找第一个满足条件的元素的索引。
条件 | 返回 |
---|---|
有满足条件的索引 | 满足条件的索引 |
没有满足条件的索引 | -1 |
(function(){
//找5和7的公倍数
var arr=[];
for(var i=1;i<100;i++){
arr.push(i);
}
var result=arr.findIndex(function(value){
//如果回调函数返回true,当前的value就是需要查找的值。
return value%5===0&&value%7===0;
});
console.log(result);//34【由于findIndex返回第一个符合条件的索引,在1-100中35是第一个满足条件的数字,所以返回35的索引---34】
})()
(15)判断数组中的元素是否满足条件
语法:数组.some(callbackFn)
作用:用来判断当前数组中是否存在满足条件的元素。
条件 | 返回 |
---|---|
如果有一个满足 | true |
如果都不满足 | false |
//是否存在5的倍数
var arr = [40,56,76,4,30];
var result = arr.some(function (value) {
return value % 5 === 0;
})
console.log (result);//true
语法:数组.every(callbackFn)
作用:用来判断当前数组中是否所有的元素都满足条件。
条件 | 返回 |
---|---|
如果有一个满足 | true |
如果都不满足 | false |
//判断arr中所有的元素是否都是偶数
var arr = [40,56,76,4,30];
var result = arr.every(function (value) {
return value % 2 === 0;
})
console.log (result);//true