目录
首先是数组的一些查找数据的方法:
直接使用数组元素查找的方法:
- includes() 方法用来判断一个数组是否包含一个指定的元素值,如果是返回 true,否则false。
- indexOf() 方法可返回数组中某个指定的元素位置,如果在数组中没找到指定元素则返回 -1。
-
lastIndexOf() 方法可返回一个指定的元素在数组中最后出现的位置,如果在数组中没找到指定元素则返回 -1。
上面这些方法是直接根据指定元素查找的,
还有一些可以通过函数来具体查找数据:
- find() 方法返回通过 函数内判断 的数组的第一个元素的值。如果没有符合条件的元素返回 undefined,不改变数组的原始值。(函数的参数为:当前元素,索引值,当前元素所属的数组对象)
- findIndex() 方法返回传入一个函数中符合条件的数组第一个元素位置。如果没有符合条件的元素返回 -1,不改变数组的原始值。(函数的参数为:当前元素,索引值,当前元素所属的数组对象)
- every() 方法用于检测数组所有元素是否都符合指定条件(函数内),如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。如果所有元素都满足条件,则返回 true。不会改变原始数组。(函数的参数为:当前元素,索引值,当前元素所属的数组对象)
- some() 方法用于检测数组中所有元素是否满足指定条件(函数提供)。如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false。不会改变原始数组,(函数的参数为:当前元素,索引值,当前元素所属的数组对象)
- filter() 方法返回一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。不会改变原始数组。(函数的参数为:当前元素,索引值,当前元素所属的数组对象)
要注意的是上面这四个方法都不会对空数组进行检测。
还有一些返回数组本身一些键和值的方法
- entries() 方法返回一个数组的迭代对象,该对象包含数组的键值对 (key/value)。迭代对象中数组的索引值作为 key, 数组元素作为 value。
- keys() 方法用于从数组创建一个包含数组键的可迭代对象。
- valueOf() 方法返回 Array 对象的原始值。
根据是否改变原数组
不改变原数组的:
- concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而是返回一个新的数组。arr.concat(参数:要连接的数组)
- every() 方法使用指定函数检测数组中的所有元素。
- some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
- filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
- map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
- slice() 方法可从已有的数组中返回选定的元素。(参数为:开始索引,结束索引)
改变原数组的:
- pop() 方法用于删除数组的最后一个元素,并返回删除的元素。
- push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
- shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值(删除的元素)。
- unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
- reverse() 方法用于颠倒数组中元素的顺序。
- sort() 方法用于对数组的元素进行排序。默认排序顺序为按字母升序。可以传入一个函数,按照函数排序。(函数里还可以设置根据数组里对象的某一个属性来进行排序。如:a数组里面属性为name的值:(a,b)=>return a.name-b.name)
- splice() 方法用于添加或删除数组中的元素。(参数:何处添加/删除元素的下标,删除元素个数(可以为0,省略则从第一个参数删除到结尾),添加到数组的新元素(可以是多个元素))
- fill() 方法用于将一个固定值替换数组的元素。
数组操作
数组转换:
数组转为字符串
- toString() 方法可把数组转换为字符串,并返回结果。 数组中的元素之间用逗号分隔
- join() 方法用于把数组中的所有元素转换一个字符串。(参数是:指定要使用的分隔符)
-
字符串转为数组:
- split() 方法用于把一个字符串分割成字符串数组。不改变原始字符串。
对象转为数组:
- of() 方法用于将一组值转换为数组,不考虑参数的数量或类型。Array.of() 和 Array() 构造函数之间的区别在于对单个参数的处理:Array.of(7) 创建一个具有单个元素 7 的数组,而 Array(7) 创建一个 length 为 7 的空数组。
- from() 方法用于通过拥有 length 属性的对象或可迭代的对象来返回一个数组。
添加或删除数组元素:
- pop() 方法用于删除数组的最后一个元素,并返回删除的元素。
- push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
- shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值(删除的元素)。
- unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
- splice() 方法用于添加 / 删除数组中的元素。(参数:何处添加/删除元素的下标,删除元素个数(可以为0,省略则从第一个参数删除到结尾),添加到数组的新元素(可以是多个元素),若为删除,则会返回删除元素组成的数组,未删除任何元素,则返回空数组。
处理数组的每一个值
- forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。空数组是不会执行回调函数的。(函数的参数为:当前元素,索引值,当前元素所属的数组对象)
- map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。(函数的参数为:当前元素,索引值,当前元素所属的数组对象)
- reduce() 方法接收一个 执行每个数组元素的 函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。(函数的参数为:初始值,当前元素,索引值,当前元素所属的数组对象)
- reduceRight() 方法的功能和 reduce() 功能是一样,不同的是 reduceRight() 从数组的末尾向前将数组中的数组项做累加。(函数的参数为:初始值,当前元素,索引值,当前元素所属的数组对象)
- reverse() 方法用于颠倒数组中元素的顺序。
数组方法的具体使用可以看我的这一条博客:JavaScript数组_白芸哆的博客-CSDN博客