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