我们可以使用以下两种方法对类数组对象进行迭代:
哪一种更可取,为什么在我不需要转换的类似数组对象的情况下?第一种方法感觉有点“hacky”,但第二种方法更易读。或者两者都一样,意思是两者都可以?
let arrayLike = document.getElementsByClassName('dummy');
[].forEach.call(arrayLike, (e) => {
console.log(e);
});
<div class = "dummy">Test1</div>
<div class = "dummy">Test2</div>
或者先使用slice
将类数组对象转换为数组:
let arrayLike = document.getElementsByClassName('dummy');
Array.prototype.slice.call(arrayLike).forEach((e) => {
console.log(e);
});
<div class = "dummy">Test1</div>
<div class = "dummy">Test2</div>
[...arrayLike].forEach()
orArray.from(arrayLike)
- adigafor...of
。 - hindmost