资讯专栏INFORMATION COLUMN

数组常用 API

duan199226 / 2470人阅读

摘要:,也不会出来接受两个参数,回调函数和回调函数的第一个参数可选回调函数接受四个参数回调函数的返回值处理结果或者的第二个参数正在处理的元素正在处理元素的索引调用的数组。

数组常用 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)
[].indexOf.call(伪数组,伪数组内的元素):找到对应伪数组内的元素的下标

例子 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);

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/110152.html

相关文章

  • JS-常用数组API、对象API与日期、随机数

    摘要:数组遍历所有元素参数顺序规定遍历数组所有元素判断所有元素是否都符合条件注意参数顺序用来判断所有的数组元素都满足一个条件都符合,否则判断是否至少有一个元素符合条件注意参数顺序用来判断所有的数组元素只要有一个满足条件即可排序从小到大排序从大 1.数组API (1) forEach 遍历所有元素 var arr = [1,2,3] arr.forEach(function( i...

    BenCHou 评论0 收藏0
  • 关于一些常用数组API的记忆方法(借鉴)

    摘要:为开始截取的索引可为负值,为结束的索引可选向从目标数组中添加删除项目,然后返回被删除的项目。返回累加之后的结果上一次调用回调返回的值,或者是提供的初始值数组中当前被处理的数组项当前数组项在数组中的索引值调用方法的数组帮助记忆增删查改 增 arr.push(); // 目标数组尾部添加,返回新数组长度 arr.unshift(); // 目标数组首部添加,返回新数组...

    Pluser 评论0 收藏0
  • 【关于数组】JavaScript常用API

    摘要:删除数组的第一项,并返回删除元素的值删除原数组的最后一项,并返回删除元素的值向数组头部追加,返回数组长度将参数添加到数组尾部,返回数组长度返回一个新数组,是将参数添加到原数组中构成的从位置开始删除项,并从该位置起插入返回被删除的内容截取字符 shift:删除数组的第一项,并返回删除元素的值 var arr1 = [1,2,3,4,5]; var b = arr1.shift(); co...

    imingyu 评论0 收藏0
  • 数组、伪数组、字符串、对象常用api大聚会

    摘要:数组改变数组的不改变原数组返回新数组没有毛线一数组字符串将数组转成字符串可自定义分隔符没有毛线将数组转成字符串并分隔每个元素没有毛线没有毛线拍照返回字符串没有毛线二数组元素添加向数组尾部添加元素改变了数组添加一个没有毛线添加一个向数组头部添 数组api 改变数组的 push、pop、unshift、shift,sort、reverse、splice不改变原数组 返回新数组 concat...

    haobowd 评论0 收藏0
  • Lodash常用API笔记

    摘要:中文文档目前我只找到了版本,现在已经更新到了,好多文档已经过期。而且中太多,有时候常用的几个我总是记不住名字,在这里贴出来,方便自己和大家。原生用法直接使用的根据条件去除某个元素。 lodash中文文档目前我只找到了3.10.x版本,现在lodash已经更新到4.17.x了,好多文档已经过期。而且lodash中api太多,有时候常用的几个我总是记不住名字,在这里贴出来,方便自己和大家。...

    Yujiaao 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<