[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
。