JavaScript数组常用API方法和遍历方法的小结(附示例)
本篇文章给大家带来的内容是关于JavaScript数组常用API方法和遍历方法的小结(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
数组 (array)
ES5 *
map
语法:[].map(function(item, index, array) {return xxx})
功能:遍历数组,返回回调返回值组成的新数组,不改变原数组,不会对空数组进行检测
forEach
语法:[].forEach(function(item, index, array) {})
功能:无法break,可以用try/catch中throw new Error来停止,不改变原数组
filter
语法:[].filter(function(item, index, array) {})
功能:过滤,返回过滤后的数组,不改变原数组,不会对空数组进行检测
eg:
const data = [-8, 9, 5, 3]; const res = data.filter(function(item) { if (item > 3) { return item } }); console.log(res); // [9, 5]
some
语法:[].some(function(item, index, array) {})
功能:有一项返回true,则整体为true,不改变原数组
every
语法:[].every(function(item, index, array) {})
功能:需要全部符合条件才返回true,有一项返回false,则整体为false,不改变原数组
join
语法:[].join(str)
功能:返回通过指定连接符str把数组连接成字符串,不改变原数组
push / pop
语法:[].push(item) / [].pop(item)
功能:数组末尾推入push和弹出pop,返回改变后数组的长度/弹出项,改变原数组
unshift / shift
语法:[].unshift(item) / [].shift(item)
功能:数组头部推入unshift和弹出shift,返回改变后数组的长度/弹出项,改变原数组
sort(fn) / reverse
语法:[].sort(fn) [].reverse()
功能:按规则排序与反转,改变原数组
splice
语法:[].splice(start, number, value1, value2...)
功能:返回删除元素组成的数组,从start
处开始删除number
个值后插入valueN
参数列表到数组中,改变原数组
concat
语法:[].concat([])
功能:连接n(n >= 2)个数组,返回数组连接后的数组副本,浅拷贝,不改变原数组
slice
语法:[].slice(start, end)
功能:返回截断后的新数组,不改变原数组
indexOf / lastIndexOf(value, fromIndex)
语法:[].indexOf(value[, fromIndex])
功能:
查找数组项
indexOf 从fromIndex
(默认为0)开始向后查找value
lastIndexOf 从fromIndex
(默认为-1)开始向前查找value
返回value对应的下标
reduce / reduceRight
语法:reduce / reduceRight(callback[, initialValue])
功能:两两执行,prev 为上次化简函数的return值,cur 为当前值(从第二项开始)
callback 函数的参数:之前值(previousValue)、当前值(currentValue)、索引值(currentIndex)以及数组本身(array)
initialValue 可选的初始值,作为第一次调用回调函数时传给previousValue的值。也就是,为累加等操作传入起始值(额外的加值)
reduceRight是从数组的末尾开始
isArray *
语法:Array.isArray(value)
功能:用于确定参数value是否是一个Array
ES6
find *
ind(fn)`
功能:返回符合条件的第一个数组元素item
findIndex *
语法:[].findIndex(fn)
功能:返回符合条件的第一个数组元素的索引
from *
语法:[].fill(value[, start, end])
功能:将类似数组的对象和可遍历(iterable)
的对象转为真正的数组
常用:
const set = new Set(3, 8, 9, 0) Array.from(set)
entries *
语法:[].entries()
功能:返回迭代器:返回键值对
【注】Object.entries(obj)
方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环也枚举原型链中的属性)【MDN】
而[].entries()
是Array.prototype上的方法
keys/values 类似
//数组 const arr = ['a', 'b', 'c']; for(let v of arr.entries()) { console.log(v) } // [0, 'a'] [1, 'b'] [2, 'c'] //Set const arr1 = new Set(['a', 'b', 'c']); for(let v of arr1.entries()) { console.log(v) } // ['a', 'a'] ['b', 'b'] ['c', 'c'] //Map const arr2 = new Map(); arr2.set('a', 'a'); arr2.set('b', 'b'); for(let v of arr2.entries()) { console.log(v) } // ['a', 'a'] ['b', 'b']
keys *
语法:[].keys()
功能:返回迭代器:返回键key(即上面的每个数组中的第一个值)
values
语法:[].values()
功能:返回迭代器:返回值value(即上面的每个数组中的第二个值)
includes *
语法:[].includes(val[, fromIndex])
功能:用于从fromIndex
判断数组中是否包含val,可替代ES5中的 indexOf
copyWithin
语法:[].copyWithin(target[, start[, end]])
功能:浅复制数组的一部分(start~end)到同一数组中的另目标位置target,返回改变后的数组,而不修改其大小;start默认为0, end默认为length-1; 改变原数组
of
语法:Array.of()
功能:创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型
Array构造函数 & Array.of() 区别
实例说明
Array.of(7); // [7] Array.of(1, 2, 3); // [1, 2, 3] Array(7); // [ , , , , , , ] Array(1, 2, 3); // [1, 2, 3]
fill
语法:[].fill(value[, start, end])
功能:用指定的元素填充数组,可用于初始化数组,返回改变后的数组,改变原数组
填充值(value),填充起始位置(start,默认为0),填充结束位置(end,默认为数组length)。
遍历
数组
map/forEach/some/every/filter 见上
for
for...in
遍历所有可枚举属性,常用于遍历对象Object
for...of
遍历所有可迭代iterable的对象
对象【属性】
for...in
循环遍历对象自身的和继承的可枚举属性(不含Symbol属性)【可枚举 - Symbol】
Object.keys(obj)
返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性)【自身可枚举 - Symbol】
Object.getOwnPropertyNames(obj)
返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性)【自身 - Symbol】
Object.getOwnPropertySymbols(obj)
返回一个数组,包含对象自身的所有Symbol属性【自身的Symbol】
Reflect.ownKeys(obj)
返回一个数组,包含对象自身的所有属性,不管是属性名是Symbol或字符串,也不管是否可枚举 【自身所有】
【相关推荐:JavaScript视频教程】
以上是JavaScript数组常用API方法和遍历方法的小结(附示例)的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

如何使用WebSocket和JavaScript实现在线语音识别系统引言:随着科技的不断发展,语音识别技术已经成为了人工智能领域的重要组成部分。而基于WebSocket和JavaScript实现的在线语音识别系统,具备了低延迟、实时性和跨平台的特点,成为了一种被广泛应用的解决方案。本文将介绍如何使用WebSocket和JavaScript来实现在线语音识别系

WebSocket与JavaScript:实现实时监控系统的关键技术引言:随着互联网技术的快速发展,实时监控系统在各个领域中得到了广泛的应用。而实现实时监控的关键技术之一就是WebSocket与JavaScript的结合使用。本文将介绍WebSocket与JavaScript在实时监控系统中的应用,并给出代码示例,详细解释其实现原理。一、WebSocket技

如何利用JavaScript和WebSocket实现实时在线点餐系统介绍:随着互联网的普及和技术的进步,越来越多的餐厅开始提供在线点餐服务。为了实现实时在线点餐系统,我们可以利用JavaScript和WebSocket技术。WebSocket是一种基于TCP协议的全双工通信协议,可以实现客户端与服务器的实时双向通信。在实时在线点餐系统中,当用户选择菜品并下单

如何使用WebSocket和JavaScript实现在线预约系统在当今数字化的时代,越来越多的业务和服务都需要提供在线预约功能。而实现一个高效、实时的在线预约系统是至关重要的。本文将介绍如何使用WebSocket和JavaScript来实现一个在线预约系统,并提供具体的代码示例。一、什么是WebSocketWebSocket是一种在单个TCP连接上进行全双工

JavaScript和WebSocket:打造高效的实时天气预报系统引言:如今,天气预报的准确性对于日常生活以及决策制定具有重要意义。随着技术的发展,我们可以通过实时获取天气数据来提供更准确可靠的天气预报。在本文中,我们将学习如何使用JavaScript和WebSocket技术,来构建一个高效的实时天气预报系统。本文将通过具体的代码示例来展示实现的过程。We

JavaScript教程:如何获取HTTP状态码,需要具体代码示例前言:在Web开发中,经常会涉及到与服务器进行数据交互的场景。在与服务器进行通信时,我们经常需要获取返回的HTTP状态码来判断操作是否成功,根据不同的状态码来进行相应的处理。本篇文章将教你如何使用JavaScript获取HTTP状态码,并提供一些实用的代码示例。使用XMLHttpRequest

用法:在JavaScript中,insertBefore()方法用于在DOM树中插入一个新的节点。这个方法需要两个参数:要插入的新节点和参考节点(即新节点将要被插入的位置的节点)。

JavaScript是一种广泛应用于Web开发的编程语言,而WebSocket则是一种用于实时通信的网络协议。结合二者的强大功能,我们可以打造一个高效的实时图像处理系统。本文将介绍如何利用JavaScript和WebSocket来实现这个系统,并提供具体的代码示例。首先,我们需要明确实时图像处理系统的需求和目标。假设我们有一个摄像头设备,可以采集实时的图像数
