for in:用于遍历对象,通过key值可以取出对应的对象value值
for循环用于较复杂的的循环,在循环中可修改原数组,用于循环次数已知的情况
forEach用于循环次数复杂情况,是for的简化版,不能产生新数组,由于在循环初已经被锁死,所以不能修改删除原数组项,无法break,return循环
map有返回值,可以return出来一个根据固定运算关系产生的新数组,原则上两个数组基本上已经无任何关系
filter有返回值,return出来一个方法体里判断关系为true的新数组,新数组是原数组的子集,需要把整个数组遍历完
find有返回值,查找满足方法体里的第一个数组项,找到就直接退出循环了,返回的是单个项数据,而非一个数组,如果能确定只找一项,则用find而非filter
some有返回值,用于查找数组中是否有满足方法体里固定判断条件的项,如果有,则中指循环,返回true
every有返回值,用于判断数组每一项是否满足方法体里固定判断条件,只要有一个不满足,则返回false
indexOf主要用于查找固定元素在数组中的角标,不存在则返回-1,
lastIndexOf从数组最后一张开始查找,功效同indexOf
includes用于判断数组中是否有指定项,单纯用于判断的话比indexOf好
findIndex返回数组中满足提供的测试函数的第一个项的索引,一般用于对象数组的角标查找
如果一个数组操作需要filter后再map产生新数组,则完全可以用reduce方法替换
reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值
[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
slice(n,m)从索引n开始,找到索引m处,把找到的内容作为新的数组返回,原有数组不改变
slice(n-1,m)把数组的第n项到第m项提取出来
slice(n) 从索引n开始查找到数组末尾
slice(0) 将原有数组复制一份 属于数组克隆
ary.push() 向数组末尾添加元素,返回的是添加后新数组的长度,原有数组改变
ary.unshift() 向数组开头添加元素,返回的是添加后新数组的长度,原有数组改变
ary.splice(n,0,x)从索引n开始删除0个元素,把新增加的元素x放在索引n的前面,返回的是一个空数组,原有数组改变
splice(0,0,x)----->unshift
ary.pop() 删除数组的最后一项,返回的是删除的那一项,原有数组改变
ary.shift() 删除数组的的第一项,返回的是删除的那一项,原有数组改变
ary.splice(n,m)从索引n开始删除m个元素,把删除的内容当做新数组返回,原有数组改变
ary.splice(n,m,x)从索引n开始删除m个元素,把新增的元素X放在索引n的前面,把删除的元素当成一个新数组返回,原有数组改变
tostring把数组的每一项拿出来用逗号隔开,原有数组不变
join("+")把数组的每一项拿出来用指定分隔符隔开