es6中新增數組的方法


1. Array.from

這個東西就是把一些集合,或者長的像數組的偽數組轉換成真的數組,比如arguments,js選擇器找到dom集合,
還有對象模擬的數組
var obj = {
'0' : 1,
length : 1
}
Array.from(obj / arguments / 偽數組) //返回的是一個數組
[].slice.call(arguments, 0) //這種方式根from方法是一樣的效果

//Array.from還有第二個參數,是一個回掉函數,功能類似map
Array.from( [1, 2, 3], item => item * 2 )

2. Array.of

Array.of(1, 2, 3, 4)    //把參數合並成一個數組返回,如果參數為空,則返回一個空數組

3. copyWithin

//這個東西用的不多,但是很有意思
//首先,參數有3個
//1: 被替換的起始位置   2: 選取替換值的起始位置   3: 選取替換值得結束位置
let arr = [1, 'c', 'd', 'a', 'b'];  //假如我想把a,b替換到1的位置
arr.copyWithin(0, 3, 5)   // ["a", "b", "d", "a", "b"]

4. find/findIndex

//find  返回數組中第一個符合條件的元素, findIndex返回索引
[1, 2, 3, 4, 5].find(function(item){
    return item > 3
})

5. fill

//功能一: 字面意思填滿,實際功能就是把數組中的每一個元素替換成指定值
let arr = [1, 2, 3, 4]
arr.fill(5)        //arr全變成了5

//功能二:指定范圍替換,這功能似曾相識啊
arr.fill(6, 1, 3) //使用6 替換數組中 下表為1-3范圍的值, 范圍是下標>=1 && <3 的位置。
//猛的一看以為功能和splice一樣呢,又去鞏固了一下。splice是刪除某一個元素,然后增加指定的個數,並且它第一個參數是下標起點,第二個參數是個數,而不是結束下標。

//擴展
[].fill.call( { length : 3 }, 4)  //結果為以為是數組,每個元素是4,結果返回的竟然還是對象。。。

6. entries/keys/values

let arr=['a', 'b', 'c']
for(let key of arr.keys()){}                     //取鍵
for(let value of arr.values()){}                //取值;不能直接使用,有兼容性問題,甚至谷歌
for(let [key, value] of arr.entries()){}       //都取

7.inludes

var a = function(){}
[1, 2, 3, 4, a].includes(a)    //true
[1, 2, 3, 4, NaN].includes(NaN)    //true


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM