视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
javascript数组中常用的API总结
2020-11-27 19:33:21 责编:小采
文档


这篇文章给大家介绍的内容是关于javascript数组中常用的API总结,有着一定的参考价值,有需要的朋友可以参考一下。

数组常用 api 介绍

split():拆分字符串变成数组(对字符串操作)
join() :合并数组变成字符串(对数组操作)
concat():连接两数组
splice(begin,deleteCount,insert):拼接
splic(begin,end):截取[begin,end)
sort(callball(value1,value2)):排序
resever():反序
filter(callback(currentValue,index)):筛选
map(callback(currentValue,index)):遍历,有返回值,和forEach类似
forEach(callback(currentValue,index)):遍历,没有返回值
reduce(callback(array,currentValue,index)[,array]):累计处理
arguments:在函数内部使用,将函数的参数变成伪数组(不能用数组的 api)

例子

sort排序:如果value1 < value2返回-1,升序排列;返回1,降序排列

var arr = [1,5,4,3,2,6,7]
arr.sort((value1,value2) => {
 if(value1 < value2){
 return -1 //升序
 }else if(value1 > value2){
 return 1 //降序
 }else{
 return 0
 }
})

filter筛选数组,接受一个回调函数,回调函数的参数valueindex(可选)、array(可选)

let arr = [1,2,3,4,5,6,7,8,9]
arr.filter((value,index) =>{
 console.log(index)
 return value > 5 //筛选条件
})
let fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];
function find(element){
 return fruits.filter((e)=>{
 return e.indexOf(element) >= -1 //indexOf查到元素,找到返回元素的索引
 })
}
find('ap') //['apple','grapes']

mapforEach之间的区别是:map有返回值,forEach没有返回值;要forEach能返回值出来,在它内部定义一个变量存储遍历的值就可以了。

var a = [1,2,3,4]
a.map(e => e*2) //[1,4,6,8]
a.forEach(e => e*2) //undefined, return 也不会出来

reduce接受两个参数,回调函数和回调函数的第一个参数(可选);回调函数接受四个参数:1、回调函数的返回值(处理结果)或者reduce的第二个参数;2、正在处理的元素;3、正在处理元素的索引;4、调用reduce的数组。

如果reduce接收第二个参数,那么回调函数的第一个参数就是它(如去重,运行逻辑是把待处理数组的每一项处理后在一个个push进去,是加的过程);如果没有第二个参数,那么回调函数的第一个参数就是待处理数组的第一项(如摧毁数组,运行逻辑是把待处理数组直接拿过来集中处理,是减的过程)。

//去重:把待处理数组的每一项处理后在一个个`push`进去,是加的过程
var a = [1,2,3,2,4,5,3,1]
a.sort().reduce((arr,currentValue) => {
 if(arr.length === 0 || arr[arr.length-1] !== currentValue){
 arr.push(currentValue)
 }
 return arr
},[]) //[1,2,3,4,5]

//摧毁数组:把待处理数组直接拿过来集中处理,是减的过程
function destroyer(arr) {
 return [].slice.call(arguments).reduce((current,next) =>{
 return current.filter((e) => {
 return e !== next
 })
 })
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3); //[1,1]

arguments虽然不是数组,但可以将它转变成真正的数组,下面是两种方法

function array(arr){
 console.log(arr) //[1,2,3,4,5],注意是一个伪数组,不能用数组的方法
}
array(1,2,3,4,5)

var args = Array.prototype.slice.call(arguments);
var args = [].slice.call(arguments);

下载本文
显示全文
专题