数组(二)--方法

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值