JavaScript 数组的常用方法

JavaScript 数组的常用方法

添加或删除数组元素的方法

push()

可以向数组的末尾添加一个或多个元素,多个元素一次性添加(并不是一个一个添加);
把要添加的元素作为方法的参数;
并返回数组的新长度;

var arr = [1,2,3];
console.log(arr);
var l = arr.push("lin",[23,45]);	//添加两个元素,并返回长度l
console.log(arr);
console.log("数组的新长度:"+l);

pop()

可以在数组的末尾删除最后一个元素,不需要参数,并返回该元素

var arr = [1,2,3];
console.log(arr);		//1,2,3
var pop1 = arr.pop();
console.log(arr);		//1,2
console.log("从尾部删除的元素是:"+pop1);	//3

push()、pop() 方法类似于把数组当成了一个来处理了。

unshift()

可以向数组的头部添加一个或多个元素,多个元素一次性添加(并不是一个一个添加)
注意:一次性添加和一个一个添加是不一样的。

  • 如果是一次性添加,要添加的多个元素按照原来的顺序添加到数组中;
  • 如果是一个一个添加,要添加的多个元素按照原顺序的倒序添加到数组中;

把要添加的元素作为方法的参数。
并返回数组的新长度。

var arr = [1,2,3];
console.log(arr);
var l = arr.unshift("lin",[23,45]);
console.log(arr);
console.log("数组的新长度:"+l);

shift()

可以在数组的头部删除一个元素,不需要参数,并返回该元素

var arr = [1,2,3];
console.log(arr);
var shift1 = arr.shift();
console.log(arr);		//2,3
console.log("从头部删除的元素是: "+shift1);	//1

遍历数组的方法

for循环遍历

var arr = [123,456,789];
for(var i=0;i<arr.length;i++){
	console.log(arr[i]);
}

forEach() 方法遍历

注意:IE 浏览器中只有 IE 8 以上的版本才支持 forEach() 方法。
forEach() 方法中,要传入一个函数作为参数,通常是一个匿名函数,该函数叫回调函数。
回调函数:由开发者声明,由浏览器调用的函数。
该回调函数中可以有三个参数(也可以部分或全部省略):

  • 第一个参数:表示每一个元素的值;
  • 第二个参数:表示每一个元素的索引;
  • 第三个参数:表示该数组对象本身。
var arr = [123,456,789];
arr.forEach(function(value,index,obj){
	console.log(obj+"数组的第"+index+"个元素是:"+value);
});

可见,数组有几个元素,回调函数调用几次。

slice() 方法

功能:返回一个数组的指定元素(一个或多个)。
slice() 方法有两个参数(可以省略一个):

  • 第一个参数:表示开始截取的索引值,截取的元素包含该索引;
  • 第二个参数:表示结束截取的索引值,截取的元素不包含该索引;当省略该参数时,表示从开始的索引截取到改数组的最后一个元素。

参数值可以是负数,表示倒数第几个元素。

var arr = [123,456,78,9];
newArr1 = arr.slice(0,2);	//获取索引0到2的元素,不包括索引为2的元素
console.log(newArr1);
newArr2 = arr.slice(1);		//获取索引大于等于1的元素
console.log(newArr2);
newArr3 = arr.slice(-3,-1);	//获取倒数第3到倒数第1的索引的元素,不包括倒数第1的元素
console.log(newArr3);
console.log(arr);		//原数组不变

splice() 方法

功能:从数组中删除元素,并返回删除的元素,同时可以添加元素。
splice() 方法参数:

  • 第一个参数:表示开始删除元素或添加元素的索引位置。
  • 第二个参数:表示要删除的元素的数量
  • 第三个参数及以上:表示要添加的元素一次性添加到第一个参数的位置,后面的元素往后移。

表示只删除元素不添加(省略第三个参数),如:

var arr = [123,456,789];
var result = arr.splice(1,2);		//从索引1开始,删除2个元素
console.log(arr);			//删除元素后的数组
console.log(result);			//删除的元素

表示只添加不删除(删除的元素数量为0),如:

var arr = [123,456,789];
var result = arr.splice(2,0,"lin","hong");	//从索引为2的位置开始,删除0个元素(不删除),并在索引2的位置开始添加"lin"、"hong"2个元素
console.log(arr);
console.log(result);	//不删除,返回空字符串

concat() 方法

功能:将数组与一个或多个数组或元素连接起来,返回一个新的数组。

var arr1 = [123,456,789];
var arr2 = ["lin","hong"];
var arr3 = [true,145,[147,[258,369]]];
var result = arr1.concat(arr2,arr3,"lian");
console.log(result);

join() 方法

功能:将数组转换成字符串并返回。
参数:数据类型:字符串;将该字符串作为分隔符,分隔开元素。
当省略参数时,默认分隔符为逗号;当不需要分隔符时,可以以空串作为分隔符。

var arr = [123,456,789];
var result = arr.join("-");	//以-为分隔符
console.log(result);
result = arr.join("");		//不需要分隔符
console.log(result);

reverse() 方法

功能:将数组倒序。

var arr = [123,456,789];
arr.reverse();		//倒序
console.log(arr);	//789,456,123

sort() 方法

功能:将数组排序。
参数:传入一个回调函数,回调函数中传入两个元素,根据返回值指定排序规则。
浏览器会使用数组中的元素去调用回调函数:

  • 如果返回大于 0 的值,则两个元素交换位置;
  • 如果返回小于或等于 0 的值,则两个元素不交换位置。

如果没有参数,默认按照 Unicode 编码进行排序。纯数字元素也是按照编码排序,并不是按照数值大小排序。
默认情况下:

var arr = [456,147,78,123];
arr.sort();
console.log(arr);	//123,147,456,78

传入回调函数,指定升序排序:

var arr = [456,147,78,123];
arr.sort(function(a,b){
	if(a>b){
		return 1;     
	}else if(a<b){
		return -1;
	}else{
		return 0;
	}
});
console.log(arr);	//78,123,147,456

以上代码可以简化为:

var arr = [456,147,78,123];
arr.sort(function(a,b){
	return a-b;   //当a>b时,返回值>0;当a<b时,返回值<0;当a==b时,返回值等于0
});
console.log(arr);

记忆:a-b :升序;b-a:降序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值