一、slice和splice
? ? ? ? slice(start, end),該方法從原數組選取指定的元素,從start到end結束,返回一個新的數組
? ? ? ? splice(start, ?deleteCounts, ...items),該方法從原數組中刪除元素,或向原數組中插入元素,返回被刪除的項目(常用方法)
? ??????let arr = [1,4,6,4,2,5]
? ??????arr.splice(1, 2, 3, 4)? ? // 從下標為1的位置開始刪除2個元素,并且插入元素3和元素4
? ? ? ? 返回被刪除的項目?(2)?[4, 6]
? ??????arr? ? // (6)?[1, 3, 4, 4, 2, 5]
二、join和split
? ??????arr.join('-')? ? //?"1-3-4-4-2-5"
? ??????"1-3-4-4-2-5".split('-')? ? //?(6)?["1", "3", "4", "4", "2", "5"]
三、push(常用)和pop,shift和unshift(這2組方法一一對應)
? ? ? ? push(...items),添加任意數量的參數到末尾,返回數組修改后的長度
? ? ? ? pop(),移除最后一項并返回移除項
? ? ? ? shift(),移除第一項并返回移除項
? ? ? ? unshift(...items),從數組開頭添加任意數量的參數,返回修改后的數組長度
四、sort排序,可接收一個自定義比較函數作為參數
五、reverse反轉,concat:該方法先創(chuàng)建一個原數組的副本,然后將參數添加到副本中,返回新數組,不改變原數組
六、indexOf和lastIndexOf,返回需要查找的項在數組中的位置,不存在則返回-1
PS:數組去重的時候,可以創(chuàng)建一個空數組,然后遍歷原數組,判斷每一項是否在新數組中存在,不存在則push到新數組中。另外可以轉為Set結構(ES6新增的數據集合,成為都是唯一的值)自動去重
/<-----ES6新增方法------>/
七、find()和findeIndex()
find(),接收一個回調函數作為參數,依次執(zhí)行該回調知道找出第一個返回值為true的成員,并返回該成員
findIndex(),與find類似,返回第一個滿足條件的成員的位置
八、includes(),是否包含給定的值,返回布爾值
數組遍歷:
九、forEach和map,相同點:接收一個回調函數,數組成員依次執(zhí)行。不同點:forEach沒有返回值,操作數組本身,可以改變原數組;map返回一個新數組,不改變原數組
十、filter,every,some。filter返回滿足條件的新數組,every當每一項都滿足時返回true,some當有一項滿足條件時返回true
/<-----ES6新增方法------>/
十一、for of,必須要部署了Symbol.iterator的數據結構,才能使用for of遍歷,包括:數組、Set和Map對象、類數組的對象(如arguments對象、DOM NodeList對象)、Generator對象以及字符串。
當然少不了我們最常見的for循環(huán),在數據量達到一定量級的時候,for循環(huán)速度更快,具有性能上的優(yōu)勢