查看: 537|回复: 0

[JavaScript/JQuery] 爱创课堂 前端 js基础 数组的收尾操作方法 ——倒叙和排序

发表于 2017-11-28 09:41:33
爱创课堂前端js基础 数组的收尾操作方法 ——倒叙和排序

2.4 数组的收尾操作方法
push() 在数组末尾添加一个或多个元素,并返回数组操作后的长度。

pop() 从数组移出最后一个元素,并返回该元素。

shift() 从数组移出第一个元素,并返回该元素。

unshift() 在数组开头添加一个或多个元素,并返回数组的新长度。

语法:数组对象,点语法调用push方法,后面加小括号,括号里面的内容就是我们要在末尾添加的元素。

添加的时候,可以添加多项数据,数据之间用逗号隔开即可。

1 var arr = [1,2,3,4,5];
2 //push(),是在最后增加一个或者多个元素,直接把元素写在小括号内,如果有多个数据用逗号隔开。
3 //返回值是新数组的长度
4 console.log(arr.push(6,7,[8,9]));
5 console.log(arr);

1 //pop:删除数组最后一项,并且返回删除的数据
2 var arr = [1,2,3,4,5];
3 console.log(arr.pop());
4 console.log(arr);

1 //unshift:在数组开头添加一个或多个元素,并返回数组的新长度。
2 var arr = [1,2,3,4,5];
3 console.log(arr.unshift(0));
4 console.log(arr);

1 //shift:删除数组第一项,并且返回删除的数据
2 var arr = [1,2,3,4,5];
3 console.log(arr.shift());
4 console.log(arr);

案例:

1 // 小应用
2 // 把最后一项增加到开头
3 var arr = [1,2,3,4,5];
4 // 增加到开头
5 console.log(arr.unshift(arr.pop()));
6 // [5,1,2,3,4]
2.5 数组的拆分和合并①数组的合并concat()。

concat()方法返回值是一个新数组,不改变原来的数组。

1 var arr1 = [1,2,3,4,5,6];
2 var arr2 = [7,8,9];
3 var arrNew = arr1.concat(arr2);
4 console.log(arrNew);
5 console.log(arr1);

concat()参数非常随意,可以是数组,也可以是散值。

1 // concat()方法的参数非常随意可以是数组也可以是散值
2 var arr = [1,2,3,4,5,6];
3 var arrNew = arr.concat(7,8,[9,10]);
4 console.log(arrNew);


②数组的拆分slice()。

slice(start,end)。对数组进行拆分返回的是一个新数组。通过数组的index进行拆分。start和end用数组下标表示,
包括start值,不包括end值。是一个区间值
1 var arr = [1,2,3,4,5,6,7,8];
2 var arrNew = arr.slice(2,5);  //从下标2开始截取一直到下标为5.(但是不包含5)
3 console.log(arrNew);
4 console.log(arr);


下标可以用负值,表示倒数第几项。(倒数是直接从-1开始)。

1 // 下标可以是负值
2 var arr = [1,2,3,4,5,6,7,8];
3 var arrNew = arr.slice(-6,-2);  //表示从倒数第6项到倒数第3项
4 console.log(arrNew);

还可以只写start表示截取到最后。

1 // 可以不写end
2 var arr = [1,2,3,4,5,6,7,8];
3 var arrNew = arr.slice(4);
4 console.log(arrNew);

1 // 负值也是可以
2 var arr = [1,2,3,4,5,6,7,8];
3 var arrNew = arr.slice(-6);
4 console.log(arrNew);

2.6 删除,插入,替换splice()方法。方法用于插入、删除或替换数组的元素。

语法:arrayObject.splice(index,howmany,element1,.....,elementX)

红色:必写的参数。绿色:可选参数。

index:表示删除元素的起始位置的索引值。

howmany:删除的元素个数,如果为0,表示不删除,后面有元素加入,表示插入的意思。如果有个数,表示删除。

element:表示要替换的新的元素。如果有,表示插入或替换,如果没有,只能是删除。

返回值:由被删除的元素组成的一个数组。如果没有删除元素,则返回空数组。原数组发生改变。

1 // 删除
2 var arr = [1,2,3,4,5,6,7,8,9];
3 console.log(arr.splice(2,3));
4 // 会改变原数组
5 console.log(arr);

1 // 插入
2 var arr = [1,2,3,4,5,6,7,8,9];
3 // howmany是0,element必须写
4 console.log(arr.splice(2,0,23,"你好"));
5 console.log(arr);


1 // 替换
2 var arr = [1,2,3,4,5,6,7,8,9];
3 // 返回的是删除的数据
4 console.log(arr.splice(2,3,100,101));
5 console.log(arr);


index可以写负值。

1 // index可以是负值
2 var arr = [1,2,3,4,5,6,7,8,9];
3 console.log(arr.splice(-5,3));

2.7 倒序和排序倒序:reverse().颠倒数组元素的顺序:第一个变成最后一个,最后一个变成第一个。
1 var arr = [1,2,"你好",4,5,null];
2 console.log(arr.reverse());

排序:sort() 给数组元素排序。

默认情况:小括号内不传任何参数。

排序依据:将所有的数组的数据都转成字符串,然后根据字符编码顺序排序。数字,大写字母,小写字母。

1 var arr = [12,2,"AB",4,5,null,"x","a"];
2 console.log(arr.sort());


sort方法有一个参数叫做比较函数。如果指明了 compareFunction ,那么数组会按照调用该函数的返回值排序。记 a 和 b 是两个将要被比较的元素(自定义升序排列):

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

若 a 等于 b,则返回 0。

若 a 大于 b,则返回一个大于 0 的值。

自定义降序排列相反。

1 // 自定义降序排序
2 var arr = [12,34,67,23,78,100,3,34];
3
4
5 console.log(arr.sort(function compareFunction(a,b){
6 if(a > b){
7 return -2;
8 }else if(a == b){
9 return 0;
10 }else{
11 return 1;
12 }
13 }));


2.8  join()

将数组整体转为一个字符串。

如果传递参数,参数会作为连接符,将每一项数据连接起来。

1 // join()方法将数组转换为字符串
2 var arr = [1,2,3,4,5,6];
3 // join传递的参数链接每一项数据
4 console.log(arr.join("+"));
5 console.log(arr.join("文字"));
6 // join可以不写参数,默认以逗号连接。
7 console.log(arr.join());

本文章版权归爱创课堂所有,转载请注明出处。

更多详细内容请访问爱创课堂官网首页

http://www.icketang.com/





回复

使用道具 举报

关闭

站长推荐上一条 /1 下一条