gpt4 book ai didi

javascript - 使用 forEach、[].forEach.call(...) 或 Array.prototype.slice.call(...).forEach 迭代类似数组的对象?

转载 作者:数据小太阳 更新时间:2023-10-29 06:14:05 31 4
gpt4 key购买 nike

我们可以使用以下两种方法实现类数组对象的迭代:

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>

哪个更可取,为什么在我不需要转换后的类数组对象的情况下?第一个感觉有点“hacky”,但第二个感觉更具可读性。或者两者完全相同,这意味着两者都可以正常工作?

最佳答案

你可以拿Array.from并将类似对象的数组转换为真正的数组。然后迭代一些数组方法。

let array = Array.from(document.getElementsByClassName('dummy'));

array.forEach((e) => {
console.log(e);
});
<div class = "dummy">Test1</div>
<div class = "dummy">Test2</div>

关于javascript - 使用 forEach、[].forEach.call(...) 或 Array.prototype.slice.call(...).forEach 迭代类似数组的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55569507/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com