在学习JS的道路上,数组是一个很重要的部分,数组的API很多,也很容易混淆,每次对数组操作时都要去查文档,学习的路上也不能一直前进,有时候要停下来做做总结,我总结了平时比较常用的一些数组API,希望能够帮到你。

arry.push()

把一个元素增加到数组的末尾,返回值为新数组的长度arry.length,示例:

let arry = [2, 9, 5]
let returnValue = arry.push(4)
console.log(returnValue) // 4
console.log(arry) // [2, 9, 5, 4]

arry.pop()

删除数组中最后一个元素,返回值为删除的元素,示例:

let arry = [2, 9, 5]
let returnValue = arry.pop()
console.log(returnValue) // 5
console.log(arry) // [2, 9]

arry.unshift()

push方法类似,区别在于它是在数组的前面添加元素,返回值为新数组的长度arry.length,示例:

let arry = [2, 9, 5]
let returnValue = arry.unshift(4)
console.log(returnValue) // 4
console.log(arry) // [4, 2, 9, 5]

arry.shift()

pop方法类似,区别在于它是删除数组前面的元素,返回值依然是被删除的元素,示例:

let arry = [2, 9, 5]
let returnValue = arry.shift()
console.log(returnValue) // 2
console.log(arry) // [9, 5]

由此可知,使用pushshift组合可以实现数据的‘先进先出’当然也可以使用unshiftpop

arry.reverse()

把数组反向排序,这里要注意它会改变原来的数组,而不会创建新的数组,示例:

let arry = [2, 9, 5]
arry.reverse()
console.log(arry) // [ 5, 9, 2 ]

arry.sort()

对数组进行排序,可接受参数,参数必须是函数,如果不没有参数 则是按照字符编码的顺序进行排序,示例:

let arry = [10, 5, 40, 1000]
console.log(arry.sort()) // [ 10, 1000, 40, 5 ]

如果数字想要按大小排列,可写入参数:

let arr = [3, 1, 7]
console.log(arr.sort((a, b) => a - b)) // [ 1, 3, 7 ]

arry.forEach(item, index)arry.map(item, index)

两者都是对数组遍历,index表示数组索引,不是必须的参数区别在于map方法会返回一个新的数组,示例:

let arry = [1, 5, 10, 15];
let arry1 = arry.map( x => x + 2);
console.log(arry1) // [ 3, 7, 12, 17 ]

arry.some()

用于检测数组中的元素是否满足指定条件,参数也是函数如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false。

let arry = [1, 5, 10, 15];
console.log(arry.some(item => item > 10)) // true

arry.every()

用于检测数组中的所有元素是否满足指定条件,只有当数组中灭一个元素都满足条件时,表达式返回true , 否则返回false,示例:

let arry = [5, 10, 15];
console.log(arry.every(item => item > 2)) // true

arry.filter()

它创建一个新的数组,原数组不变,新数组中的元素是通过检查指定数组中符合条件的所有元素,示例:

let arry = [1, 5, 10, 15];
let arry1 = arry.filter(item => item > 5)
console.log(arry) // [ 1, 5, 10, 15 ]
console.log(arry1) // [ 10, 15 ]

arry.join()

把数组元素合并为一个字符串,如果不带参数,默认用逗号分隔

let arry = [5, 10, 15];
console.log(arry.join()) // 5,10,15
// 添加参数
let arry = [5, 10, 15];
console.log(arry.join('.')) // 5.10.15

arry.splice(index, hm, add)

它既可以删除特定的元素,也可以在特定位置增加元素,也可以删除增加同时搞定,index是起始位置,hm是要删除元素的个数,add是要增加的元素,上例子:

let myFish = ['angel', 'clown', 'mandarin', 'sturgeon']
myFish.splice(2, 0, 'drum') // hm为0 表示不删除任何元素
console.log(myFish) // [ 'angel', 'clown', 'drum', 'mandarin', 'sturgeon' ]
let myFish = ['angel', 'clown', 'mandarin', 'sturgeon']
myFish.splice(2, 1, 'drum')
console.log(myFish)  // [ 'angel', 'clown', 'drum', 'sturgeon' ]

arry.concat()

用于连接两个或多个数组,返回值为连接后的新数组,原数组不变,示例:

let arry1 = [1, 2, 3]
let arry2 = [4, 5, 6]
arry1.concat(arry2)
console.log(arry1.concat(arry2)) // [ 1, 2, 3, 4, 5, 6 ]

这些就是关于数组常用的api,可以大胆地添加收藏,以备不时之需~

关于JS数组API的总结相关推荐

  1. es6 数组合并_13个不low的JS数组操作,你需要知道一下

    作者 | 火狼1来源 | https://juejin.im/post/5c92e385e51d450ce11df1d1 前言 本文主要从应用来讲数组api的一些骚操作:如一行代码扁平化n维数组.数组 ...

  2. js数组往队头添加数据、js数组从队头移出数据

    1.js数组往队尾添加数据可以用数组API Array.prototype.push 可以往数组尾部添加元素 2.js数组往队尾添加数据可以用数组API Array.prototype.pop 可以把 ...

  3. 用于 Keras 用户使用的 TensorFlow.js layers API

    用于 Keras 用户使用的 TensorFlow.js layers API TensorFlow.js 的Layers API以Keras为模型.考虑到 JavaScript 和 Python 之 ...

  4. c++ 构造函数数组_从 JS 数组操作到 V8 array.js

    前言 最近在写面试编程题,经常用到数组,经常想偷个懒,用它提供的方法,奈何还是对数组方法使用不熟练,导致写了很多的垃圾代码,很多地方稍加修改的话肯定变得简洁高效优雅? 所以✍这篇文章本着了解一下Jav ...

  5. JavaScript复习笔记(三)数组及数组API

    一.数组 分为两种  关联数组:可以自己定义下标名称的数组 索引数组:自动生成下标的数组都是索引数组 1.创建.赋值和取值 ①创建:4种: 1. var 变量名=[];   创建一个空数组对象 2. ...

  6. Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名

    原文:Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名 源代码下载地址:http://www.zuidaima.com/share/1550463397874 ...

  7. Vanilla Node.js REST API示例

    A Vanilla Node.js REST API without Frameworks such us Express | Engineering Education (EngEd) Progra ...

  8. JS常用API(结合代码案例简单易懂)

    API:应用程序编程接口,在JS下表示预定义的函数和方法,可以直接调用功能. 目录 一.数组API 二.字符串API 三.MathAPI 如何学习一个API:   作用.参数.返回值 学习数组API还 ...

  9. three.js 常用api

    three.js 常用api 场景 创建场景 var scene = new THREE.Scene(); 插入场景 scene.add(x); 相机 正交投影相机 var camera = new ...

最新文章

  1. [转]最快速度找到内存泄漏
  2. Java8初体验(二)Stream语法详解(转)
  3. leetcode算法题--三角形最小路径和
  4. Android使用 LruCache 缓存图片
  5. CSS3学习系列之颜色
  6. AES CBC模式下的CBC bit flipping Attack
  7. 动态规划几种状态剪裁比较
  8. 数字信号处理实验(三):离散时间傅里叶变换
  9. cs go linux游戏吧,玩家分享:让CSGO画面变成舒服的暖色调
  10. zabbix mysql.status_zabbix 监控mysql状态
  11. 《设计模式详解》行为型模式 - 模板方法模式
  12. 九小时九个人九扇门(01背包)
  13. Github-emoji表情图像大全
  14. 题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
  15. 含泪推荐几款超级好用的软件
  16. 我的爬虫(一)之抓取优美图库图片
  17. 差分编码 Differential Encoding
  18. 计算机控制系统与常规仪表控制系统的主要异同点,计算机控制技术复习资料-20210711112641.doc-原创力文档...
  19. 计算机的指令集作用,指令集是
  20. 【微信小程序更改appid失败】微信小程序修改appid一直失败报错tourist appid解决办法

热门文章

  1. git clone一个github上的仓库非常缓慢 和 github网页打不开
  2. 行为模式之Chain of Responsibility模式
  3. 使用iframe call server及iframe target使用例
  4. Vue04 -- 计算属性用法(v-for的筛选排序)
  5. python 比较两个yaml文件
  6. Asp.NetCore MVC Web 应用
  7. PL/SQL轻量版(四)——存储函数/存储过程与触发器
  8. VSFTP配置参数详解
  9. 让CPU占用率听你指挥
  10. C#异步编程的实现方式(6)——层次任务