写一个方法将DOM里的类数组对象转换为数组

在前端开发中,我们经常遇到类数组对象(array-like objects),比如 NodeListHTMLCollection。这些对象具有 length 属性和索引元素,但它们并不是真正的数组,所以它们没有数组的方法,如 map()filter() 等。为了使用这些方法,我们通常需要将这些类数组对象转换为真正的数组。

以下是一个简单的方法,使用 Array.from() 来将类数组对象转换为数组:

function convertArrayLikeToArray(arrayLike) {
    return Array.from(arrayLike);
}

你可以这样使用这个方法:

// 假设你有一个包含多个 div 元素的页面
const divs = document.querySelectorAll('div');

// divs 是一个 NodeList,它是一个类数组对象
console.log(divs); // NodeList(3) [div, div, div]
console.log(Array.isArray(divs)); // false

// 使用我们的方法将其转换为数组
const divsArray = convertArrayLikeToArray(divs);

console.log(divsArray); // [div, div, div]
console.log(Array.isArray(divsArray)); // true

现在 divsArray 是一个真正的数组,所以你可以使用所有的数组方法,如 map()filter() 等。

posted @   王铁柱6  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示