数组构造器array的方法:不改变原数组:concat():拼接数组,合并数组slice():slice(起始位置索引,结束位置索引):从数组中提取指定元素,包括thestartandexcludingendmap():做计算会改变原来的数组:pop():删除数组的最后一个元素,并返回删除元素的值push():添加多个元素到数组的末尾并返回一个值(数组的新长度)shift():与pop相反,删除数组的第一个元素,并返回删除的元素值数组并返回一个值(数组的新长度)splice():splice(起始位置Index,删除的个数,传入新元素):添加元素,删除指定元素reverse():反转数组,会影响原数组join():将数组转为字符串,返回字符串遍历方法od:forEach():Loopevery():每个元素满足测试函数returntruesome():数组中至少有一个满足测试函数,返回trueindexOf():findIndex():找到第一个满足测试的元素函数,返回具体索引find():找到第一个满足测试函数的元素,返回值filter():将所有过滤函数中返回true的数组元素放到一个新数组中,返回数组,returnBooleanreduce():对数组求和sort():重新排序会影响原数组,按Unicode排序进阶方法:flat():将多维数组转换为一维数组flatMap():Array.from():将类数组转为数组,Array.of()/fill():将一组值转为数组数组实例copyWithin()数组去重https://juejin.im/post/6844903881500016647ES6:新增集合数组去重:(array.fromorspreadoperator)Array.from(newSet(arr))[...newSet(arr)]maparraydeduplicationreduce去重filter+indexOf去重:filter(x,index,self)ES5:doubleforloop+splice去重indexOf去重包括去重数组排序Array.prototype.sort()排序稳定reverse()逆序,sort()升序排列数组遍历:for循环:for,forEach,for...in,for...of(ES6)iteratorIteratormap,forEach,reducesummation,filter过滤,[every,somedifference]ES6:entries(),keys()和values()数组计算Sum,averageforloop:for/forloopoptimization,forEach,for...in,for...ofES5:while,do...while,recursionES6:every,some,reduce,filter,map,eval(性能差)https://www.cnblogs.com/faithZZZ/p/7063952.htmlfor循环优化版,最优:reducefor...of循环尾递归数组求最大值最小值,并集,交集,差集数组随机多维数组转一维数组,手写实现flatarr.toString().split(','):只适用于数组arr.join().split(',')中的所有数字二维转一维:[].concat(...arr)手动实现扁平化:
