遍历数组
map
map方法的作用在于处理 流式数据,比如数组。
map() 方法 返回一个新数组,数组中的元素为原始数组元素 调用函数 处理后的值。
map( ) 不会改变原始数组!!!!!
array.map(function(currentValue,index,arr), thisValue)
currentValue 必须。当前元素的值
index可选。当前元素的索引值
arr可选。当前元素属于的数组对象
thisValue 可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
如果省略了 thisValue ,"this" 的值为 "undefined"
注意:map 方法 回调函数需要 return!!!!否则就是 undefined;
map() 不会对空数组进行检测
map() 不会改变原始数组
reduce
reduce() 方法对累加器和数组中的每个元素(从左到右)应用一个函数,最终合并为一个值。
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
total 必需。初始值, 或者计算结束后的返回值。
currentValue 必需。当前元素
currentIndex 可选。当前元素的索引
arr 可选。当前元素所属的数组对象。
initialValue 可选。传递给函数的初始值
filter
filter方法可以筛除数组和类似结构中不满足条件的元素,并 返回 满足条件 的元素组成的数组。
filter() 方法创建一个 新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
array.filter(function(currentValue,index,arr), thisValue)
参数
currentValue 必须。当前元素的值
index可选。当前元素的索引值
arr可选。当前元素属于的数组对象
thisValue可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
如果省略了 thisValue ,"this" 的值为 "undefined"
forEach
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
array.forEach(function(currentValue, index, arr), thisValue)
function(currentValue, index, arr)必需。 数组中每个元素需要调用的函数。
currentValue必需。当前元素
index可选。当前元素的索引值。
arr可选。当前元素所属的数组对象。
thisValue可选。传递给函数的值一般用 "this" 值。
如果这个参数为空, "undefined" 会传递给 "this" 值
注意:无法中途退出循环,只能用return退出本次回调,进行下一次回调。
它总是返回 undefined值,即使你return了一个值。
every
用于检测数组所有元素是否都符合指定条件(通过函数提供)。
every() 方法使用指定函数检测数组中的所有元素:
如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
如果所有元素都满足条件,则返回 true。
array.every(function(currentValue,index,arr), thisValue),参数跟forEach一样。
返回值是布尔类型
注意:如果数组中检测到有一个元素不满足,则整个表达式返回 false,且剩余的元素不会再进行检测。
如果所有元素都满足条件,则返回 true。
some
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
array.some(function(currentValue,index,arr),thisValue)
查询数组中元素
includes
arr.includes(searchElement)
arr.includes(searchElement, fromIndex)
includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
searchElement必须。需要查找的元素值。
fromIndex可选。从该索引处开始查找 searchElement。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。默认为 0。
find
array.find(function(currentValue, index, arr),thisValue)
find() 方法为数组中的 每个元素 都调用一次函数执行,
返回值:find 返回 数组或类似结构中满足条件的 第一个元素。
currentValue 必需。当前元素
index可选。当前元素的索引值
arr可选。当前元素所属的数组对象
thisValue可选。 传递给函数的值一般用 "this" 值。
如果这个参数为空, "undefined" 会传递给 "this" 值
当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数,如果没有符合条件的元素返回 undefined。
findIndex
findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。
findIndex() 方法为数组中的每个元素都调用一次函数执行:
当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 -1
和 find 基本一样,就是 find 是返回 符合条件的元素,findIndex 是返回下标
indexOf
array.indexOf(searchvalue,start)
该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。
注意: indexOf() 方法区分大小写。
返回值:返回数组中首次出现某个指定的元素位置,也就是下标。
注意:indexOf()不能识别NaN
searchvalue必需。规定需检索的字符串值。
start可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 string Object.length - 1。如省略该参数,则将从字符串的首字符开始检索。
增加删减方法
扩展预算符 ...
push 改变原来的数组
array.push(item1, item2, ..., itemX)
向数组的末尾添加一个或多个元素,并 返回新的长度。
unshift 改变原来的数组
array.unshift(item1,item2, ..., itemX)
向数组的开头添加一个或更多元素,并返回新的长度。
concat 不改变原来的数组
array.concat(array2,array3,...,arrayX)
concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
返回值:返回一个新的数组。
splice 改变原来的数组
array.splice(index,howmany,item1,.....,itemX)
splice() 添加/删除数组元素
返回值:如果从 array 中删除了元素,则返回的是 删除后 的数组。
注意:添加是在开始的元素前面添加的!!!
index必需。规定从何处添加/删除元素。
该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
howmany必需。规定应该删除多少元素。必须是数字,但可以是 "0"。
如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
item1, ..., itemX可选。要添加到数组的新元素
slice 不改变原数组
array.slice(start,end)
返回值:返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
start必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
pop 改变原来的数组
array.pop()
pop() 方法删除一个数组中的 最后的一个元素,并且 返回这个元素
返回值 是 删除的这个元素!!!!
shift 改变原来的数组
array.shift()
shift()方法删除数组的 第一个元素,并 返回这个元素
返回值 是 删除的这个元素!!!!
copyWithin 改变原来的数组
array.copyWithin(target, start, end)
用于从数组的指定位置拷贝元素到数组的另一个指定位置中。
target必需。复制到指定目标索引位置。
start可选。元素复制的起始位置。
end可选。停止复制的索引位置 (默认为 array.length)。如果为负值,表示倒数。
fill 改变原来的数组
array.fill(value, start, end)
用于将一个固定值替换数组的元素。
value必需。填充的值。
start可选。开始填充位置,默认为0
end可选。停止填充位置 (默认为 array.length)
转换方法
join
array.join(separator)
join() 方法用于把数组中的所有元素通过指定的分隔符进行分隔放入一个字符串,返回生成的字符串。
separator可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
split(字符串转数组)
string.split(separator,limit)
用于把一个字符串分割成字符串数组。
separator可选。字符串或正则表达式,从该参数指定的地方分割 string Object。
limit可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
注意: 如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
Array.of( )
将一组值转换为数组
Array.from( )
Array.from方法用于将 两类对象 转为 真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map).
toLocaleString
数组转字符串
返回一个表示数组元素的字符串。该字符串由数组中的每个元素的 toLocaleString() 返回值经调用 join() 方法连接(由逗号隔开)组成。
排序方法
reverse 改变原来的数组
颠倒数组中元素的顺序。
array.reverse()
sort 改变原来的数组
对数组的元素进行排序。
array.sort(sortfunction)
数组实例的 entries(),keys() 和 values()
返回一个遍历器对象,可以用for...of循环进行遍历
keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历。