[1, 2, 3, 4, 5].length = 2 // [1, 2]複製代碼
let a = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
}
let b = Array.from(a) // ['a', 'b', 'c']複製代碼
Array.of(3, 11, 8) // [3,11,8]
Array.of(3) // [3]
Array.of() // []複製代碼
['a', 'b', 'c'].fill(7, 1, 2) //['a', 7, 'c']複製代碼
[1, 5, 10, 15].find(function(value, index, arr) {
return value > 9;
}) // 10複製代碼
[1, 5, 10, 15].findIndex(function(value, index, arr) { return value > 9; }) // 2複製代碼
"Hello world!".indexOf("Hello") // 0複製代碼
[1, 2, 3].includes(2) // true複製代碼
[1, 2, 3, 4, 5].copyWithin(0, 3) // [4, 5, 3, 4, 5]複製代碼
undefined
,因此不能鏈式調用。使用break
,return
語句不能使其停止或者跳出forEach
循環,除非拋出異常。(ps
: 本人用的不多 ,通常會選擇其餘迭代api
或者普通的for
循環就很好)for..in
遍歷對象的時候,會把其原型(prototype
)中方法與屬性給遍歷出來,能夠在循環裏使用對象的hasOwnProperty
()
方法去判斷,來避免這個問題。或者直接選用Object
的API
:keys/enenties/values
去遍歷對象for...of
容許你遍歷 DOM
集合,Array
(數組), String
(字符串), Map
(映射), Set
(集合)等可迭代的數據結構等。entries()、keys()和values()
——用於遍歷數組。它們都返回一個遍歷器對象,能夠用for...of
循環進行遍歷,惟一的區別是keys()
是對鍵名的遍歷、values()
是對鍵值的遍歷,entries()
是對鍵值對的遍歷。true
。true
。true
的將返到一個新數組中Infinity
參數,表示無論有多少層嵌套,都要轉成一維數組map
,而後對返回值組成的數組執行flat()
方法。該方法返回一個新數組,不改變原數組。通俗說,就是先map
,再拉平一層prev
和 cur
。接下來咱們跟着實例來看看具體用法吧~ 利用reduce來計算一個字符串中每一個字母出現次數。const str = 'jshdjsihh';
const obj = str.split('').reduce((pre, cur) => {
pre[cur] ? pre[cur]++ : pre[cur] = 1
return pre
}, {})
console.log(obj) // {j: 2, s: 2, h: 3, d: 1, i: 1}複製代碼
數組的空位指,數組的某一個位置沒有任何值。好比,api
ES6
是明確將空位轉爲undefined,
因爲空位的處理規則很是不統一,因此建議避免出現空位。數組
foreach()
, filter()
, reduce()
, every()
和some()
都會跳過空位。map()
不會遍歷空位,直接跳過,但會保留這個空位。let a = [1, , , 2]
let b = a.map(item => ++item) // [2, empty × 2, 3]複製代碼
for...of
循環會遍歷空位, 直接將空位轉爲undefined。let a = [1, , , 2]
for (let i of a) {
console.log(i)
} // 1, undefined, undefined, 2複製代碼
for...in
循環不會遍歷空位,直接跳過。var a=[,,,2,3,]
for(let i in a){
console.log(i)
} // 3, 4複製代碼
fill()
會將空位視爲正常的數組位置,同樣填充覆蓋。[, , ,].fill(7) //[7, 7, 7]複製代碼
join()
會將空位視爲undefined
,而undefined
和null
會被處理成空字符串。[1,,2].join('-') // "1--2"複製代碼
Array.from
方法會將數組的空位,轉爲undefined
。Array.from([,,1]) // [undefined, undefined, 1]複製代碼
...
)也會將空位轉爲undefined
。console.log(...[,,1]) // undefined undefined 1複製代碼
copyWithin()
會連空位一塊兒拷貝。entries()
、keys()
、values()
、find()
和findIndex()
會將空位處理成undefined
。