Skip to content

数组

更新: 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)

三、判断是否是数组

  1. 通过 Object.prototype.toString 来判断;
  2. 通过 instanceof 来判断;
  3. 通过 Array.isArray() 方法来判断;

四、遍历数组的方式

遍历数组的方式 (面试回答)

基本:forforEachfor..infor...of
高级:mapfilterreduce 累加器some/everyfind/findIndex

道友再会.