js 数组 api
Posted spring
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 数组 api相关的知识,希望对你有一定的参考价值。
1.sort()
arr.sort([function])
对数组元素排序。在原数组上排序,并返回这个数组。
(1)若没有function,按ascii字母顺序排序
var arr = [10,60,300,50,80]; arr.sort(); console.log(arr) //[10,300,50,60,80]
(2)若有function,该函数比较两个值,返回一个说明这两个值相对顺序的数字。
a.若function(a,b)小于0,a排在b前面。
b.若function(a,b)大于0,a排在b后面。
c.若function(a,b)大于0,a与b相对位置不变。
var arr = [10,60,300,50,80]; arr.sort(function(a,b){ return a - b; }); console.log(arr);//[10,50,60,80,300]
var objArr = [ {id:1,count:12}, {id:2,count:3}, {id:3,count:8}, {id:4}, {id:5,count:20} ]; objArr.sort(function(a,b){ if(a.count < b.count){ return -1; } if(a.count > b.count){ return 1; } return 0; }) console.log(objArr);//[{id:2,count:3},{id:3,count:8},{id:1,count:12},{id:4},{id:5,count:20}]
2.concat()
arr.concat([item],[item],[...],[item])
连接两个或多个数组,不修改原数组,返回一个新数组。
item可以是具体的值,也可以是数组。若item是数组,把数组的元素添加到目标数组中。若没有item,生成一个目标元素的副本。
var arr = [10,60], arr1 = [20,30], arr2 = [[30,10],[12]]; var newArr = arr.concat(arr1,arr2,0); console.log(newArr);//[10,60,20,30,[30,10],[12],0]
3.splice()
arr.splice(start,[deleteCount],[item],[item],[...],[item])
插入、删除或替换数组元素,修改原数组。返回删除的元素组成的数组,若没有删除元素,返回一个空数组。
start:规定添加、删除元素的位置。start从0开始计算,删除、添加操作都包含start这个位置。start超过数组长度,添加元素从数组末尾开始添加。若start为负值,表示从数组末尾开始的第几位,-1表示倒第一个元素,-2表示倒第二个元素。
deleteCount:如果没有此参数,删除从start开始到结尾的所有元素。
item:添加的新元素。
var arr = [10,5,30,29,6,30], rtArr; rtArr = arr.splice(1,1); console.log(rtArr);//[5] console.log(arr);//[10,30,29,6,30] rtArr = arr.splice(4,0,100,120); console.log(rtArr);//[] console.log(arr);//[10,30,29,6,100,120,30] rtArr = arr.splice(-2,2,1000,1001); console.log(rtArr);//[120,30] console.log(arr);//[10,30,29,6,100,1000,1001]
4.slice()
arr.slice(start,end)
返回一个新数组,包含从start到end(不包含该元素)的arr中的元素。
若start或end的值为负值,表示从末位开始的第几位,-1表示倒数第一个,-2表示倒数第2个,以此类推。
var arr = [10,5,30,29,6,30], newArr; newArr = arr.slice(-4,-2); console.log(newArr);//[30,29] newArr = arr.slice(1,5); console.log(newArr);//[5,30,29,6]
5.reverse()
arr.reverse()
颠倒数组元素的位置,改变原来的数组。
var arr = [10,5,30,6,30]; arr.reverse(); console.log(arr);//[30,6,30,5,10]
6.unshift(), shift(), pop(), push()
arr.unshift(elem1,[elem2],[...],[elemN])
向数组的开头添加一个或更多元素,并返回新的数组的长度。
arr.shift()
删除数组的第一个元素,并返回数组的第一个元素的值。
arr.pop()
删除数组的最后一个元素,并返回数组的最后一个元素。
arr.push(elem1,[elem2],[...],[elemN])
向数组的末尾添加一个或多个元素,并返回新的数组的长度。
7.join()
arr.join([separator])
将数组中的所有元素连接成一个字符串。
如果没有参数separator,默认使用逗号作为分隔符。
ES5(数组)
浏览器支持:
Opera 11+
Firefox 3.6+
Safari 5+
Chrome 8+
Internet Explorer 9+
以上是关于js 数组 api的主要内容,如果未能解决你的问题,请参考以下文章