Javascript 数组方法小结——相似、易混淆的方法
目录
1.every( ) 用于检测数组所有元素是否都符合指定条件(通过函数提供)。
2.filter( ) 创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
3.find( ) 返回传入一个测试条件(函数)符合条件的数组第一个元素。
4.forEach( ) 用于调用数组的每个元素,并将元素传递给回调函数。
5.indexOf( ) 可返回某个指定的字符串值在字符串中首次出现的位置。
6.map( ) 返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。按照原始数组元素顺序依次处理元素。
7.some( ) 用于检测数组中的元素是否满足指定条件(函数提供)。
1.every( ) 用于检测数组所有元素是否都符合指定条件(通过函数提供)。
使用指定函数检测数组中的所有元素:
如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
如果所有元素都满足条件,则返回 true。
注意:every() 不会对空数组进行检测。every() 不会改变原始数组。
array.every(function(currentValue,index,arr), thisValue)
function(currentValue, index, arr) 必需。数组中每个元素需要调用的函数。
currentValue 必需。当前元素
Index 可选。当前元素的索引值。
arr 可选。当前元素所属的数组对象。
thisValue 可选。传递给函数的值一般用 "this" 值。如果这个参数为空,"undefined"会传递给 "this" 值
2.filter( ) 创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意:filter() 不会对空数组进行检测。filter() 不会改变原始数组。
array.filter(function(currentValue,index,arr), thisValue)
function(currentValue, index, arr) 必需。数组中每个元素需要调用的函数。
currentValue 必需。当前元素
Index 可选。当前元素的索引值。
arr 可选。当前元素所属的数组对象。
thisValue 可选。传递给函数的值一般用 "this" 值。如果这个参数为空,"undefined"会传递给 "this" 值
3.find( ) 返回传入一个测试条件(函数)符合条件的数组第一个元素。
为数组中的每个元素都调用一次函数执行:
当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 undefined
注意:find() 对于空数组,函数是不会执行的。find() 并没有改变数组的原始值。
array.find(function(currentValue, index, arr),thisValue)
function(currentValue, index, arr) 必需。数组中每个元素需要调用的函数。
currentValue 必需。当前元素
Index 可选。当前元素的索引值。
arr 可选。当前元素所属的数组对象。
thisValue 可选。传递给函数的值一般用 "this" 值。如果这个参数为空,"undefined"会传递给 "this" 值
4.forEach( ) 用于调用数组的每个元素,并将元素传递给回调函数。
注意:forEach() 对于空数组是不会执行回调函数的。没有返回值,只针对每个元素调用function。
可通过arr改变数组原始值。
array.forEach(function(currentValue, index, arr), thisValue)
function(currentValue, index, arr) 必需。数组中每个元素需要调用的函数。
currentValue 必需。当前元素
Index 可选。当前元素的索引值。
arr 可选。当前元素所属的数组对象。
thisValue 可选。传递给函数的值一般用 "this" 值。如果这个参数为空,"undefined"会传递给 "this" 值
5.indexOf( ) 可返回某个指定的字符串值在字符串中首次出现的位置。
该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个searchvalue,则返回searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。
如果在数组中没找到字符串则返回 -1。
提示如果你想查找字符串最后出现的位置,请使用 lastIndexOf() 方法。
array.indexOf(item,start)
item 必须。查找的元素。
start 可选的整数参数。规定在字符串中开始检索的位置。
它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。
返回值:Number,元素在数组中的位置,如果没与搜索到则返回 -1。
6.map( ) 返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。按照原始数组元素顺序依次处理元素。
注意:map() 不会对空数组进行检测。map() 不会改变原始数组。
array.map(function(currentValue,index,arr), thisValue)
function(currentValue, index, arr) 必需。数组中每个元素需要调用的函数。
currentValue 必需。当前元素
Index 可选。当前元素的索引值。
arr 可选。当前元素所属的数组对象。
thisValue 可选。传递给函数的值一般用 "this" 值。如果这个参数为空,"undefined"会传递给 "this" 值
7.some( ) 用于检测数组中的元素是否满足指定条件(函数提供)。
会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不再执行检测。
如果没有满足条件的元素,则返回false。
注意:some() 不会对空数组进行检测。some() 不会改变原始数组。
array.some(function(currentValue,index,arr),thisValue)
function(currentValue, index, arr) 必需。数组中每个元素需要调用的函数。
currentValue 必需。当前元素
Index 可选。当前元素的索引值。
arr 可选。当前元素所属的数组对象。
thisValue 可选。传递给函数的值一般用 "this" 值。如果这个参数为空,"undefined"会传递给 "this" 值
8.sort( ) 用于对数组的元素进行排序。
排序顺序可以是字母或数字,并按升序或降序。默认排序顺序为按字母升序。注意:当数字是按字母顺序排列时"40"将排在"5"前面。使用数字排序,你必须通过一个函数作为参数来调用。函数指定数字是按照升序还是降序排列。
注意:这种方法会改变原始数组!
array.sort(sortfunction)
sortfunction 可选。规定排序顺序。必须是函数。
返回值:Array,对数组的引用。注意,在原数组上进行排序,不生成副本。