array

248 阅读2分钟
变异方法 
        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)