什么是伪数组?

伪数组(array-like )是指具有 属性并且元素按索引(如 0, 1, 2)排列的对象数组filter数组filter,但不具备数组的方法(如 map, 等)。常见的伪数组示例有:

如何将伪数组转换成真正的数组?

你可以使用以下几种方法将伪数组转换成真正的数组:

Array.from() 方法:

const divs = document.querySelectorAll('div');const divArray = Array.from(divs);

2.扩展运算符(...):

const divs = document.querySelectorAll('div');const divArray = [...divs];

3.Array..slice.call() 方法:

const divs = document.querySelectorAll('div');const divArray = Array.prototype.slice.call(divs);

使用 进行一次和二次过滤

假设你想对这些 div 元素进行两次不同的过滤,以下是如何实现的示例

// 获取所有 div 元素的伪数组const divs = document.querySelectorAll('div');
// 转换为真正的数组const divArray = Array.from(divs);
// 一次过滤:过滤出包含特定类名的 divconst firstFilter = divArray.filter(div => div.classList.contains('first-class'));
// 二次过滤:从第一次过滤的结果中再筛选包含特定文本的 divconst secondFilter = firstFilter.filter(div => div.textContent.includes('specific text'));
// 打印结果console.log('第一次过滤结果:', firstFilter);console.log('第二次过滤结果:', secondFilter);

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注