遍历数组方法
foreach方法:foreach(value,index,array)
foreach方法有三个参数,第一参数value是数组的每一项,
第二个参数index是数组的索引值
第三个参数array是数组本身
****注意foreach方法不会改变原数组,如果需要改变必须赋值新数组
foreach中return和continue都不起作用
map方法:map(value,index,array)
map方法有三个参数,第一参数value是数组的每一项,
第二个参数index是数组的索引值
第三个参数array是数组本身
map不会改变原数组
map会生成新数组
filter方法:filter((currentValue, indedx, arr), thisValue)
过滤符合条件
filter不会改变原数组
filter不会遍历空数组
filter是过滤符合条件的元素返回一个新数组
filter必须有返回值return,return也为符合条件的
currentValue参数是必须的
some方法:some(value,index,arr)
some循环每一项如果符合条件返回true
只要符合条件的就会返回true
return为判断条件
every方法:every(value,index,arr)
every不会循环空数组
every开始循环后只要发现一项不符合条件就会停止循环,返回false
return为判断条件
some一直在找符合条件的值,一旦找到,则不会继续迭代下去。
every从迭代开始,一旦有一个不符合条件,则不会继续迭代下去。
find方法:find(value,index,arr)
遍历数组,返回符合条件的第一个元素 ,如果没有符合条件的元素则返回 undefined
findIndex方法:findIndex(value,index,arr)
遍历数组,返回符合条件的第一个元素的索引,如果没有符合条件的元素则返回 -1
includes方法:includes(value)
判断数组中是否含有value值;是返回true;否则返回flase;多用于判断
reduce方法:(pre,next,idx)
三个值分别是前一个,后一个值,和索引可以计算数组和以及其他算法,return pre+next; 需要给方法设置初始值
arr.reduce(function(prev,cur,index,arr){
…
}, init); init为初始值
js数组方法
toString()方法:
将数组每一项以 ,分割为字符串
toString()方法可以根据所传递的参数把数值转换为对应进制的数字字符串。参数范围为 2~36 之间的任意整数。
不会改变原数组
32.toString(2),()中进制数即可
join方法:
它的行为类似 toString(),但是您还可以规定分隔符:
join()中的参数不传或传undefind会默认以 ,分割为字符串
不会改变原数组
会改变原数组的:
pop() 方法从数组中删除最后一个元素
push()方法从数组中最后添加一个元素
shift()方法从数组中第一个位置删除一个元素
unshift()方法从数组第一个位置添加一个元素
delete()方法:
delete会删除元素但是会留下undefind
使用为delete arr[index]
splice方法:splice(index,howmany,item1,item2…)
第一个参数index必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
第二个 howmany必需。要删除的项目数量。如果设置为 0,则不会删除项目。
第三个参数及以后参数可选。向数组添加的新项目。
会改变数组
如果只传一个参数,则会在参数索引位置删除到最后位置
concat() 方法不会更改现有数组。它总是返回一个新数组。
slice方法:slice(start,end)
start 要抽取的片断的起始下标。如果是负数,则该参数规定的是从数组的尾部开始算起的位置。也就是说,-1 指数组的最后一个元素,-2 指倒数第二个元素,以此类推。
end 紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原数组结尾的元素。如果该参数是负数,那么它规定的是从数组的尾部开始算起的位置。
***slice方法对字符串同样可适用,如果只写一个参数则是从参数下标位置索引截取到结束
slice方法不会改变原数组或原字符串
reverse方法
reverse() 方法用于颠倒数组中元素的顺序
该方法会改变原来的数组,而不会创建新的数组。
sort方法:sort(sortby)
sortby 可选。规定排序顺序。必须是函数
sort() 方法用于对数组的元素进行排序。
sort方法做对比是会把数组每一项看作字符串并且按位对比。
sort(a,b) return a-b 数字对比时生序;降序只需要return b-a
字母排序会以26英文字母顺序排序,先排首字母,如果首字母相同再排第二个以此类推
js中call,bind,apply的用法
这三个函数都是用来改变this的指向问题
call 、bind 、 apply 这三个函数的第一个参数都是 this 的指向对象
****第二个参数就不一样啦
call 的参数是直接放进去的,第二第三第 n 个参数全都用逗号分隔,直接放到后面,call(‘指向的对象’,参数,参数)
apply 的所有参数都必须放在一个数组里面传进apply(‘指向的对象’,参数,参数)
bind 除了返回是函数以外,它 的参数和 call 一样。bind(‘指向的对象’,参数,参数)()------这个()是必须的
当然,三者的参数不限定是 string 类型,允许是各种类型,包括函数 、 object 等等!