JavaScript的 Array 对象是用于构造数组的全局对象,数组是类似于列表的高阶对象。
常用方法
Array.prototype.every()
every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。
注意: 若收到一个空数组,此方法在一切情况下都会返回 true。
语法: arr.every(callback[, thisArg])
-
参数
- callback: 用来测试每个元素的函数,它可以接收三个参数:
- element: 用于测试的当前值。
- index(可选): 用于测试的当前值的索引。
- array(可选): 调用 every 的当前数组。
- thisArg(可选): 执行 callback 时使用的 this 值。
- callback: 用来测试每个元素的函数,它可以接收三个参数:
-
返回值
- 如果回调函数的每一次返回都为 true值,该方法返回 true ,否则返回 false。
Array.prototype.some()
点击查看MDN对该方法的解释
some() 方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值。
注意:如果用一个空数组进行测试,在任何情况下它返回的都是false。
语法: arr.some(callback(element[, index[, array]])[, thisArg])
-
参数
- callback: 用来测试每个元素的函数,接受三个参数:
- element: 数组中正在处理的元素。
- index 可选: 数组中正在处理的元素的索引值。
- array可选: some()被调用的数组。
- thisArg可选: 执行 callback 时使用的 this 值。
- callback: 用来测试每个元素的函数,接受三个参数:
-
返回值
数组中有至少一个元素通过回调函数的测试就会返回true;所有元素都没有通过回调函数的测试返回值才会为false。
Array.prototype.filter()
filter() 方法创建一个新数组, 其中包含通过指定函数功能测试的所有元素。
简而言之,filter() 方法对数组进行过滤操作,返回符合条件的新数组。
注意: filter() 不会对空数组进行检测,不会改变原数组,它返回过滤后的新数组。
语法: var newArray = arr.filter(callback(element[, index[, array]])[, thisArg])
-
参数
- callback: 用来测试数组的每个元素的函数。返回 true 表示该元素通过测试,保留该元素,false 则不保留。它接受以下三个参数:
- element: 数组中当前正在处理的元素。
- index(可选): 正在处理的元素在数组中的索引。
- array(可选): 调用了 filter 的数组本身。
- thisArg(可选): 执行 callback 时,用于 this 的值。
- callback: 用来测试数组的每个元素的函数。返回 true 表示该元素通过测试,保留该元素,false 则不保留。它接受以下三个参数:
-
返回值
- 一个新的、由通过测试的元素组成的数组,如果没有任何数组元素通过测试,则返回空数组。
Array.prototype.find()
find() 方法返回数组中满足测试函数的第一个元素的值。否则返回 undefined。
语法: arr.find(callback[, thisArg])
参数
- callback: 在数组每一项上执行的函数,接收 3 个参数:
- element: 当前遍历到的元素。
- index(可选): 当前遍历元素的索引。
- array可选: 数组本身。
- thisArg(可选): 执行回调时用作this 的对象。
返回值
- 数组中第一个满足所提供测试函数的元素的值,否则返回 undefined。
Array.prototype.findIndex()
findIndex()方法返回数组中满足测试函数的第一个元素的索引。否则返回-1。
语法: arr.findIndex(callback[, thisArg])
-
参数
- callback: 针对数组中的每个元素, 都会执行该回调函数, 执行时会自动传入下面三个参数:
- element: 当前元素。
- index: 当前元素的索引。
- array: 调用findIndex的数组。
- thisArg(可选): 执行callback时作为this对象的值.
- callback: 针对数组中的每个元素, 都会执行该回调函数, 执行时会自动传入下面三个参数:
-
返回值
- 数组中通过提供测试函数的第一个元素的索引。否则,返回-1。
如果需要找到一个元素的位置或者一个元素是否存在于数组中,使用Array.prototype.indexOf() 或 Array.prototype.includes()。
Array.prototype.indexOf()
indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
语法:arr.indexOf(searchElement[, fromIndex])
- 参数:
- searchElement:要查找的元素。
- fromIndex(可选):开始查找的位置。如果该索引值大于或等于数组长度,意味着不会在数组里查找,返回-1。
- 返回值:
- 首个被找到的元素在数组中的索引位置; 若没有找到则返回 -1。
Array.prototype.includes()
includes() 方法用来判断一个数组是否包含一个指定的值,如果包含则返回 true,否则返回false。
语法:arr.includes(valueToFind[, fromIndex])
- 参数
- valueToFind: 需要查找的元素值。
- fromIndex(可选): 从fromIndex 索引处开始查找 valueToFind。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜 (即使从末尾开始往前跳 fromIndex 的绝对值个索引,然后往后搜寻)。默认为 0。
- 返回值:
- 返回一个布尔值,如果在数组中找到了(如果传入了 fromIndex ,表示在 fromIndex 指定的索引范围中找到了)则返回 true 。
使用 includes()比较字符串和字符时是区分大小写。
Array.prototype.map()
- map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
- map() 方法按照原始数组元素顺序依次处理元素。
- map() 不会对空数组进行检测。
- map() 不会改变原始数组。
var new_array = arr.map(function callback(currentValue[, index[, array]]) {
// Return element for new_array
}[, thisArg])
- 参数
- callback: 生成新数组元素的函数,使用三个参数:
- currentValue: callback 数组中正在处理的当前元素。
- index(可选): callback 数组中正在处理的当前元素的索引。
- array(可选): map 方法调用的数组。
- thisArg(可选): 执行 callback 函数时值被用作this。
- callback: 生成新数组元素的函数,使用三个参数:
其他
1. JavaScript数组去重
2. JavaScript 数据拷贝
—— END ——