数组之slice,splice,Concact,Reverse,Sort方法

Slice(strart,end)用来从数组中提取元素.该方法不会改变元素数组,而是将截取到的元素封装到一个新数组中返回

参数start 截取开始的位置索引,包含开始索引

参数end 截取结束位置的索引,不包括结束索引,第二参数可以省略,截取从start索引往后的所有元素

索引可以传负值,从后往前计算-1为倒数第一个,-2为倒数第二个

 

Splice方法 删除原数组中指定元素,会影响原数组,将被删除的元素作为返回值返回

splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])

start 必选项。指定从数组中移除元素的开始位置,这个位置是从 0 开始计算的。

deleteCount 必选项。要移除的元素的个数。

item1, item2,. . .,itemN 必选项。要在所移除元素的位置上插入的新元素。

 

 

利用splice去重练习

var arr = [1,3,5,2,4,2,3,5,5,5,5,2]
        for (var i = 0; i<arr.length;i++) {
            for (var j = i+1; j<arr.length;j++) {
                if (arr[i]==arr[j]) {
                    arr.splice(j,1)
                    j--
          /*
           j--不写输出结果为[1, 3, 5, 2, 4, 5],因为splice会影响当前数组元素,当相邻2个以上的重复元素比较时,会把第二个删除,而此时第三个重复元素的位置就变成了第二,
           但是第二个已经比对过了,所以会直接往下走,造成重复数据未能完全清除
          */
} } } console.log(arr)

Concact方法 可以连接2个或者多个数组、元素,并把新的数组返回,

该方法对原数组不会产生变化,

Join方法 该方法可以将数组转换成一个字符串,不对原数组产生影响,而是将转换后的字符串作为结果返回,Join()方法中可以指定一个字符串作为参数,这个字符串会成为数组中元素的连接符,不指定默认为逗号

Reverse方法用来反转数组,头尾互换.会修改原数组内的数据

 

Sort 对数组内元素排序,影响原数组按照字符串在UNICODE编码排序,所以对数字排序会错误. sort(sortfunction)

sortFunction可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:

负值,如果所传递的第一个参数比第二个参数小。

零,如果两个参数相等。

正值,如果第一个参数比第二个参数大。

我们可以自己写个函数来规定里面的参数排序方法

var arr = [1,3,5,2,4,2,3,5,5,5,5,2]

         function fun (a,b) {
              if (a>b) {
                   return 1
              }
              else if( a <b){
                   return -1
              }

              else{

                   return 0

              }

         }

         arr.sort(fun)

         console.log(arr)

 

posted @ 2019-02-28 22:19  零哭谷  阅读(745)  评论(0编辑  收藏  举报