数组操作方法

数组操作方法

今天重新温故以前的知识点,记录一下学习心得

join()

join()方法将数组中所有的元素都转化为字符串并链接再一起,返回左后生成的字符串,可以指定一个字符来分隔数组中的各个元素

var a=[1,2,3];
a.join();//=>"1,2,3"
a.join("-");//=>"1-2-3";

reverse()

reverse()方法是将数组中的元素颠倒顺序,返回逆序的数组

var a=[1,2,3];
a.reverse();//=>[3,2,1];
a,reverse().join();//=>"3,2,1";

sort()

sort()方法是将数组中的元素排序并返回排序后的数组,1.当不带参数调用的时候,数组元素是以字母表顺序排序,为了按照其他方式而非字母表顺序进行排序,要给sort()方法传参数

//不传参数
var a=['apple','cherry','banana'];
a.sort();//=>['apple','banana','cherry'];
var b=[33,4,1111,222];
b.sort();//=>[1111,222,33,4];
b.sort(function(a,b){
	return a-b;
});//=>[4,33,222,1111]从小到大排序
b.sort(function(a,b){return b-a});//=>[1111,222,33,4]从大到小的顺序排序

concat()

concat()方法创建并形成一个新的数组,它的元素包括调用concat()的原始数组的元素和concat()的每个参数,concat()方法不会修改调用的数组,例如下面的这些

var a=[1,2,3];
a.concat(4,5);//=>[1,2,3,4,5];
a.concat([4,5]);//=>[1,2,3,4,5];
a.concat([4,5],[6,7]);//=>[1,2,3,4,5,6,7]
a.concat(4,[5,[6,7]]);//=>[1,2,3,4,5,[6,7]];

slice();

slice()方法返回指定数组的一个片段或子数组,它的两个参数分别指定了片段的开始和结束的位置,返回的数组包含第一个参数指定的位置和所有到但不包含第二个参数指定的位置之间所有的数组元素,如果只指定一个参数,则返回的数组将包含从开始位置到数组结尾的所有元素.如果参数中出现负数,它表示相对于数组中最后一个元素的位置,例如,参数-1指定了最后一个元素,而-3指定了倒数第三个元素

var a=[1,2,3,4,5];
a.slice(0,3);//返回[1,2,3];从0位置到第4个位置(不包括第4个位置);
a.slice(3);//[4,5];
a.slice(1,-1);//[2,3,4];
a.slice(-3,-2);//[3]

splice();

splice()方法是再数组中插入或删除元素中的通用方法,splice()会修改调用的数组,

push()和pop()

push()方法是在数组的尾部添加一个或者多个元素,并返回数组新的长度,pop()方法则相反,它删除数组的最后一个元素,减小数组长度并返回它删除的值,这两个方法都修改并替换原始数组而非生成一个修改版的新数组;

var a=[];
a.push(1,2);//[1,2];
a.pop();//[1]
a.push([4,5]);//[1,[4,5]];

unshift()和shift()

这两个方法行为和push()和pop()方法很类似,不同的是这两个方法是对数组的头部进行元素的插入和操作,unshift()在数组头部添加一个或多个元素;shift()删除数组头部元素;

var a=[];
a.unshift(1);//[1]
a.unshift(22);//[1,22]
a.shift();//[22]

这两个方法可以和push(),pop()方法相结合,例如做一个浏览历史功能,最多保存5个浏览记录,多了就删除最先进入的那个,然后再添加进去最新的浏览记录

	//假入说数组history就是保存记录的数组
	var length=history.length;//数组的长度
	if(length<5){
		history.push({"浏览记录"});//把最新的浏览记录保存进去
	}else{
		history.pop();
		history.unshift({"浏览记录"});
		//或者
		history.shift();//删除头部第一个
		history.push({"浏览记录"});//添加到尾部一个最新数组
	}

猜你喜欢

转载自blog.csdn.net/weixin_43615360/article/details/85149946