js中Array对象常用方法

1.slice用法

slice() 方法可从已有的数组中返回选定的元素

arrayObject.slice(start,end)
参数描述
start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

实例:

1 var str = "abcdefgh";
2 document.write("1.str.slice(1):" + str.slice(1) + "<br />"); //bcdefgh从下标为1的开始到最后
3 document.writeln("2.原字符串:" + str + "<br />"); //bcdefgh并不会改变
4 document.writeln("3.str.slice(1,3):" + str.slice(1, 3) + "<br />"); //bc从下标为1的开始到字符串第3个字符
5 document.writeln("4.str.slice(-3,-1):" + str.slice( - 3, -1) + "<br />");
6 var arr = [1, 2, 3, 4, 5];
7 document.writeln("5.arr.slice(1,2):" + arr.slice(1, 2) + "<br />");
8 document.writeln("6.arr.slice(-3,-1):" + arr.slice( - 3, -1) + "<br />"); //3,4从倒数第三个,到倒数第二个,第二个参数为开区间[a,b)

提示和注释

注释:您可使用负值从数组的尾部选取元素。

注释:如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。

2.splice,夹杂着pop,push,shift,unshift方法

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。

注释:该方法会改变原始数组。

语法

arrayObject.splice(index,howmany,item1,.....,itemX)
参数描述
index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX 可选。向数组添加的新项目。

实例

 1 var str2 = [1, 2, 3, 4, 5];
 2 document.writeln("7.str2.splice(1):" + str2.splice(1) + "<br />"); //从下标为1的开始到最后
 3 document.writeln("8.原数组:" + str2 + "<br />"); //1,原数组已经变了
 4 str2.push(8, 9, 10); //添加3个元素
 5 document.write("9.pop方法:" + str2.pop() + "<br />"); //10返回最后一个元素(出栈)
 6 document.write("10.原数组:" + str2 + "<br />"); //1,8,9
 7 document.write("11.shift():" + str2.shift() + "<br />"); //返回第一个元素(出栈),原数组第一个
 8 document.write("12.原数组:" + str2 + "<br />"); //8,9
 9 str2.unshift('a', 'b', 'c');
10 document.write("13.unshift三个元素后数组:" + str2 + "<br />"); //a,b,c,8,9 在第一个元素前添加元素abc
11 document.writeln("14.新增元素:" + str2 + "<br />"); //a,b,c,8,9
12 document.writeln("15.str2.splice(1,3):" + str2.splice(1, 3) + "<br />"); //从下标为1的开始往后三个字符b ,c ,8
13 str2.push(18, 19, 11); //添加3个元素 a,9,18,19,11
14 document.writeln("16.str2.splice(1,1,'x','y','z'):" + str2.splice(1, 1, 'x', 'y', 'z') + "<br />"); //返回被替换元素,从下标为1的替换为x,y,z
15 document.write("17.原数组:" + str2 + "<br />"); //a,x,y,z,18,19,11
16 document.writeln("18.str2.splice(1,0,2):" + str2.splice(1, 0, 2) + "<br />"); //无返回值,将index1替换为2
17 document.write("19.原数组:" + str2 + "<br />");

  

注释:请注意,splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改

执行结果:

1.str.slice(1):bcdefgh
2.原字符串:abcdefgh
3.str.slice(1,3):bc
4.str.slice(-3,-1):fg
5.arr.slice(1,2):2
6.arr.slice(-3,-1):3,4
7.str2.splice(1):2,3,4,5
8.原数组:1
9.pop方法:10
10.原数组:1,8,9
11.shift():1
12.原数组:8,9
13.unshift三个元素后数组:a,b,c,8,9
14.新增元素:a,b,c,8,9
15.str2.splice(1,3):b,c,8
16.str2.splice(1,1,'x','y','z'):9
17.原数组:a,x,y,z,18,19,11
18.str2.splice(1,0,2)str2.splice(1,0,2):
19.原数组:a,2,x,y,z,18,19,11

 3.sort 和reverse

 1 var arr1 = [1, 2, 3, 4, 5];
 2 document.write(arr1.sort() + "<br/>");//0,1,16,5
 3 
 4 var arr2 = [0, 1, 5, 16];
 5 document.write(arr2.sort() + "<br/>");//此时排序不正确//16,5,1,0
 6 document.write(arr2.sort(function(a, b) {//自定义排序函数
 7     if (a > b) return 1;
 8     else if (a < b) return - 1;
 9     else return 0;
10 }) + "<br/>");
11 
12 var arr3 = [0, 1, 5, 16];
13 document.write(arr3.reverse() + "<br/>");
14 document.write(arr3.reverse(function(a, b) {
15     if (a > b) return - 1;
16     else if (a < b) return 1;
17     else return 0;
18 }) + "<br/>");
原文地址:https://www.cnblogs.com/lucky2u/p/5501521.html