JavaScript 9种数组去重及性能问题

本文总结了JavaScript中9种常见的数组去重方法,包括for循环、indexOf、forEach、filter、reduce、Map、Set等,并通过性能测试对比了它们的优劣。在这些方法中,使用新对象进行去重的方案在时间复杂度上表现最佳。
摘要由CSDN通过智能技术生成

  最近在面试的过程中,碰到了如何在 JavaScript 中实现数组去重的功能,当时面试官说不用考虑性能什么的,所以我想到的思路是这样的:

  1. 新建一个数组;
  2. 每次遇到一个字符,进行判定;
  3. 如果在新的数组中没有这个字符,就插入到这个新数组中;
  4. 如果有这个字符,开始读取下一个字符;
  5. 重复步骤 2 - 4,直到数组遍历完了,最后返回这个新数组。

  回来之后,查了查 JavaScript 中几种常见数组去重的方法,这里做个总结,然后并附上我对这几种方法性能的测试结果。

下面的函数是用来创建随机数数组的函数(1-1000):

function createArr(length) {
   

    var arr = new Array();
    for(var i = 0; i < length; i++) {
        arr[i] = Math.floor(Math.random() * 1000) + 1;
    }

    return arr;
}


1、for循环(两次嵌套)+ 新数组

//chrome: max: 1443, min: 1181, average: 1207.47
//firefox: max: 238, min: 178, average: 185.7
function sort1(arr) {
   
    var flag = 0;
    var result = new Array();
    for(var i = 
  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值