数组之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)