数组和正则✅
用过 Array 哪些方法
答案
方法名 | 作用简介 |
---|---|
push | 向数组末尾添加元素 |
pop | 移除并返回数组最后一个元素 |
shift | 移除并返回数组第一个元素 |
unshift | 向数组开头添加元素 |
concat | 合并两个或多个数组 |
join | 将数组元素连接成字符串 |
slice | 返回数组的片段 |
splice | 添加/删除/替换数组元素 |
forEach | 遍历数组每个元素 |
map | 返回新数组,元素经函数处理 |
filter | 返回符合条件的新数组 |
reduce | 累加器,数组归约为单个值 |
find | 查找第一个符合条件的元素 |
findIndex | 查找第一个符合条件元素的索引 |
every | 检查所有元素是否满足条件 |
some | 检查是否有元素满足条件 |
includes | 判断数组是否包含某元素 |
indexOf | 查找元素首次出现的索引 |
lastIndexOf | 查找元素最后出现的索引 |
sort | 对数组排序 |
reverse | 反转数组顺序 |
flat | 扁平化嵌套数组 |
flatMap | 映射并扁平化数组 |
什么是伪数组和数组的区别是什么如何转换
答案
伪数组(Array-like Object)是具有 length
属性和索引化元素(如 arguments
对象、DOM 集合)的对象,但它们不是真正的数组实例,因此不具备数组的内置方法(如 push
, pop
, slice
等)。
核心特征:
length
属性:表示元素的数量。- 索引访问:可以通过数字索引(如
obj[0]
)访问元素。 - 非数组实例:
Array.isArray(arrayLikeObject)
返回false
。 - 缺少数组方法:不能直接调用
forEach
,map
等数组方法。
转换为真实数组的方法:
-
Array.from()
: ES6 引入,是转换类数组对象或可迭代对象的首选方法。const arrayLike = { 0: 'a', 1: 'b', length: 2 }
const trueArray = Array.from(arrayLike) // ['a', 'b'] -
展开运算符 (
...
): ES6 引入,简洁易读,适用于可迭代对象。const nodeList = document.querySelectorAll('div')
const trueArray = [...nodeList] -
Array.prototype.slice.call()
: 经典方法,通过调用数组的slice
方法并将其this
指向类数组对象。const arrayLike = { 0: 'a', 1: 'b', length: 2 }
const trueArray = Array.prototype.slice.call(arrayLike) // ['a', 'b']
转换后,就可以在新的数组上使用所有标准的数组方法了。