js高级程序设计(第五章部分(数组)),总结:

1.数组排序的两个方法reverse()和sort()

(1)首先对reverse()方法的认识,它会对数组进行反转,这个在平常用的不是太多。比如,下面的这个小例子:

var arr = [1, 2, 3];
arr.reverse();
console.log(arr);   //3,2,1

(2)对于sort()方法的使用,它默认进行的是升序排序。可能大家在第一印象中,都认为这是一个排序方法,但是在一些比较数值的例子中,却发现数值并没有按照自己的意向进行排序,这是因为在调用sort方法时,它会将数组的每个选项都通过toString()转换为字符串,然后再进行比较。这就是为什么都是数值类型的选项,却出现了意外的结果。

var arr = [1, 2, 3, 10, 20];
arr.sort();
console.log(arr);   //1, 10, 2, 20, 3

(3)其实对于上面的sort方法,我们只需要给它传递一个比较函数作为参数即可实现升序或者降序排列。这个参数函数一般包含两个参数,通过比较两个参数的差,进行返回正数、0(代表两个参数相等)、负数即可实现功能。
代码示例如下:

降序的参数函数: 
       function compare (a, b) {  
            return a - b; 
       }
升序的参数函数:  
      function compare (a, b) {  
            return b - a; 
      }  

只需把这个函数传入sort()中即可。

2.对concat()和slice()以及splice()方法的了解

(1)concat()是对数组进行连接的一个方法,它里面可以传入多个或者不同类型的参数,在连接时,会为当前操作的数组创建一个新的副本,将所要连接的选项都添加在这个副本之后。

var arr = [1, 2, 3];
var newArr =  arr.concat('a', ['b', 'c']);
console.log(arr);   //1, 2, 3
console.log(newArr);   //1, 2, 3, a, b, c

(2)slice()方法返回的是包含截取选项的数组。它里面可以有两个或者一个参数,两个参数时,分别代表开始位置和结束位置(结束位置为开区间)。一个参数时,代表开始位置,一直截取到结束位置。此外,里面的参数也可以为负数,代表从数组的末尾开始操作,但是开始索引的值为1,不再是0。开始位置的值要始终小于结束位置的值,否则返回空数组。

var arr = [1, 2, 3];
var newArr1 =  arr.slice(0, 1);
console.log(arr);   //2, 3
console.log(newArr1);   //1
var newArr2 = arr.slice(1);
console.log(arr);   //2
console.log(newArr1);   //3

(3)splice()方法用的最多的就是插入和删除数组选项,它返回的是包含删除选项的数组。两个参数时,分别代表开始位置和删除元素的个数。三个或者更多的参数时,分别代表开始位置、删除的个数以及删除后要添加的个数。

var arr = [1, 2, 3, 4];
var newArr1 =  arr.splice(0, 1);
console.log(arr);   //2, 3, 4
console.log(newArr1);   //1
var newArr2 = arr.splice(1, 0, 'a', 'b');
console.log(arr);   //2, a, b, 3, 4
console.log(newArr1);   //因为没删除任何元素,所以返回空数组[]

你可能感兴趣的:(js高级程序设计(第五章部分(数组)),总结:)