变异方法
push() pop()
unshift() shift() 头部的增删
splice(start,num,add) 从几开始删几个,在几插入的
sort()
reverse()
非变异
slice() 返回新数组,从开始到结束不包括结束位置同字符串的substring
filter()
concat()
join() 返回字符串
valueOf() 返回数组对象的原始值
toString() 返回字符串表示
新
indexOf()
lastIndexOf() 起始位置和查找的项
forEach() 项,索引,数组本身 无返回
map() 映射 又返回
filter() 过滤 返回新数组
every() 判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。
some()
reduce() 迭代数组的所有项,然后构建一个最终返回的值
reduceRight() (prev, cur, index, array)
map reduce filter forEach
[].map() 映射
map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组,它包含该函数的返回值。传递给map()的函数的调用方式和传递给forEach()的函数的调用方式一样。但传递给map()的函数应该有返回值。map()返回的是新数组:它不修改调用的数组。如果是稀疏数组,返回的也是相同方式的稀疏数组,顺序一样。
reduce()
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
数组的reduce方法,接收一个函数(必须)和指定的初始值(非必须)作为参数,函数有三个参数,分别为初始值,当前项,当前数组,进行累加或者累积操作,初始值为每次累加或者累计后的结果 https://blog.csdn.net/turbman/article/details/78846226
在ie9一下的浏览器中,并不支持该方法 !
arr.reduce(fn(pre,cur,arr){},[initialValue])
filter
filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。
和map()类似,Array的filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
array.forEach(function(currentValue, index, arr), thisValue)
join() 方法用于把数组中的所有元素放入一个字符串。
sort
sort 方法是按照ASCII码来进行排序的。对于JavaScript数组的sort方法来说,
它会先将待排序的内容转换为字符串(调用toString()方法),
按照字符串的先后顺序进行排序。
例如,[1,12,13,21,2]经过sort方法排序后的
结果为[1,12,13,2,21],而不是[1,2,12,13,21]。
如何把一个有序数组整成无序的?
总结
拓展Array或String方法?去重并从大到小排列,
数组中找最大值,最快方法。 Math.max.apply(null, arr)