chst365's blog chst365's blog
首页
  • Git
  • 网络
  • 操作系统
  • 浏览器
  • webpack
  • JavaScript
  • TypeScript
  • 性能
  • 工程化
  • React
  • 编程题
  • React技术揭秘
  • 算法
  • Node
  • 编码解码
  • NodeJS系列
  • Linux系列
  • JavaScript系列
  • HTTP系列
  • GIT系列
  • ES6系列
  • 设计模式系列
  • CSS系列
  • 小程序系列
  • 数据结构与算法系列
  • React系列
  • Vue3系列
  • Vue系列
  • TypeScript系列
  • Webpack系列
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

chst365

DIV工程师
首页
  • Git
  • 网络
  • 操作系统
  • 浏览器
  • webpack
  • JavaScript
  • TypeScript
  • 性能
  • 工程化
  • React
  • 编程题
  • React技术揭秘
  • 算法
  • Node
  • 编码解码
  • NodeJS系列
  • Linux系列
  • JavaScript系列
  • HTTP系列
  • GIT系列
  • ES6系列
  • 设计模式系列
  • CSS系列
  • 小程序系列
  • 数据结构与算法系列
  • React系列
  • Vue3系列
  • Vue系列
  • TypeScript系列
  • Webpack系列
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 浏览器

  • webpack

  • TypeScript

  • 性能

  • 工程化

  • React

  • JavaScript

  • 编程题

    • 实现一个trim方法
    • 实现一个deepClone方法
    • 实现add(1)(2)(3)
    • 大数相加
    • 拍平数组flat
    • 实现防抖、节流函数
    • 反转字符串
    • 数组去重
      • 双层循环
      • indexOf
      • 排序后去重
      • filter
      • ES6
        • Set
        • Map
    • 实现千位分隔符
    • 回文数
    • 实现一个模板引擎
    • 判断一个数是否是素数
    • 获取n以内所有的素数
  • React技术揭秘

  • 算法

  • 前端
  • 编程题
chst365
2022-09-05
目录

数组去重

# 双层循环

function unique(array) {
    var res = [];
    for (var i = 0, arrayLen = array.length; i < arrayLen; i++) {
        for (var j = 0, resLen = res.length; j < resLen; j++) {
            if (array[i] === res[j]) break;
        }
        if (j === resLen) res.push(array[i]);
    }
    return res;
}
1
2
3
4
5
6
7
8
9
10

# indexOf

function unique(array) {
    var res = [];
    for (var i = 0, len = array.length; i < len; i++) {
        var current = array[i];
        if (res.indexOf(current) === -1) res.push(current);
    }
    return res;
}
1
2
3
4
5
6
7
8

# 排序后去重

function unique(array) {
    var res = [];
    var sortedArray = array.concat().sort();
    console.log(sortedArray);
    var seen;
    for (var i = 0, len = sortedArray.length; i < len; i++) {
        if (!i || seen !== sortedArray[i]) res.push(sortedArray[i]);
        seen = sortedArray[i];
    }
    return res;
}
1
2
3
4
5
6
7
8
9
10
11

# filter

function unique(array) {
    return array.concat().sort().filter(function (item, index, array) {
        return !index || item !== array[index - 1];
    });
}
1
2
3
4
5

# ES6

# Set

const unique = (a) => [...new Set(a)];
1

# Map

const unique = (arr) => {
    const seen = new Map();
    return arr.filter(a => !seen.has(a) && seen.set(a, 1));
};
1
2
3
4
#前端#编程题
上次更新: 2022/09/07, 15:54:26
反转字符串
实现千位分隔符

← 反转字符串 实现千位分隔符→

最近更新
01
面试官
03-27
02
this&指针&作用域&闭包
03-27
03
前端
03-27
更多文章>
Theme by Vdoing | Copyright © 2019-2025 chst365 | 豫ICP备17031889号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式