数组
更新: 2025/3/18 14:37:35 字数: 0 字
一、数组常见的操作及方法
js
const list = []
// 1. 遍历
for (let i = 0; i < list.length; ++i)// 遍历性能最好
for (const key in list) {}
for (const key in list) {}
list.forEach(item => {}); // 仅遍历
list.map(item =>{}); //返回构造后的新数组
// 2. 逻辑判断
list.every(item => {}); // 全部返回 true 则函数返回true
list.some(item =>{}); // 有一项返回true,则函数返回true,内部 或 关系
// 3. 过滤
list.filter(item => {}); // 返回过滤后的新数组
// 4. 查找
list.indexOf(); // 第一个找到的位置,否则为 -1
list.lastIndexOf(); // 最后一个找到的位置,否则为 -1
list.includes(); // 接收一个参数,如果数组有目标值,返回 true
list.find(); // 如果找到目标值,则返回目标值,否则返回 undefined
list.findeIndex(); // 如果找到目标值。返回下标,否则返回 -1
二、数组去重
- 使用
Set
集合
js
const arr = [];
const uniqueArr = [...new Set(arr)];
- 使用
filter
来进行过滤 - 使用
indexOf
的返回值来判断是否已经存在,或者使用include
来判断新数组中是否已存在 - 使用
reduce
来遍历数组的元素,构建一个新数组,只添加第一次出现的。
js
const arr = [1, 2, 3, 4, 5, 6, 7, 7, 8, 8]
const uniqueArr = arr.reduce((acc, current) => {
// 判断当前值是否已经被收录了
// 这里使用的是 include 也可以是 indexOf
if(!acc.include(current)){
acc.push(current);
}
return acc
}, [])
console.log(uniqueArr)
三、判断是否是数组
- 通过
Object.prototype.toString
来判断; - 通过
instanceof
来判断; - 通过
Array.isArray()
方法来判断;
四、遍历数组的方式
遍历数组的方式 (面试回答)
基本:for
、forEach
、for..in
、for...of
。
高级:map
、filter
、reduce 累加器
、some/every
、find/findIndex
。