当前位置: 首页 > news >正文

利用哈希表实现数组的去重以及利用delete批量删除数组元素

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

实现一个array_diff函数,找出2个或多个数组中唯一存在的数字,组成新的数组。

//找出多个数组中唯一存在的数字,组成新的数组
function array_diff() {
    var hash = {},
        arr = [],
        midArray = [],
        result = [];
    for (i in arguments) {
        arr = arr.concat(arguments[i]);
    }
    for (i in arr) {
        if (isNaN(hash[arr[i]]) && arr[i] <= "9" && arr[i] >= "0") {
            midArray.push(arr[i]);
            hash[arr[i]] = midArray.length - 1;
        } else if (arr[i] <= "9" && arr[i] >= "0") {
            delete midArray[hash[arr[i]]];
        }
    }
    for (i in midArray) {
        result.push(midArray[i]);
    }
    return result;
}

//测试array_diff函数
var a = [1, 2, 3, "a"];
var b = [2, 3, 4, "b"];
var c = [3, 4, 5, "d"];
alert("["+array_diff(a, b, c)+"]") //输出[1,5]


转载于:https://my.oschina.net/xing240/blog/159208

相关文章:

  • eclipse +VISUALSVN SERVER 创建版本控制器,防止误操作(可视化操作,简单方便,不需要修改配置文件)...
  • 3.GoolgeProtoBuffer序列化反序列化
  • C语言-删除注释
  • c#调用java
  • java 动态代理
  • 字符缓冲流BufferedWriter和BufferedWriter
  • 修改BASH的配色
  • OpenStack快照分析:(三)从磁盘启动云主机离线(在线)快照分析
  • php substr说明
  • alterdialog
  • MobIM-API说明
  • mysql5.5.15配置主从数据库
  • 京东美团研发面经
  • windos使用nslookup查询mx记录
  • canvas - drawImage()方法绘制图片不显示的问题
  • 【css3】浏览器内核及其兼容性
  • angular2开源库收集
  • JavaScript设计模式与开发实践系列之策略模式
  • JS变量作用域
  • Js基础知识(一) - 变量
  • PAT A1017 优先队列
  • vue-cli3搭建项目
  • 大型网站性能监测、分析与优化常见问题QA
  • 聊一聊前端的监控
  • 配置 PM2 实现代码自动发布
  • 如何选择开源的机器学习框架?
  • 使用agvtool更改app version/build
  • 树莓派 - 使用须知
  • 在Mac OS X上安装 Ruby运行环境
  • 在Unity中实现一个简单的消息管理器
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (12)Linux 常见的三种进程状态
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (windows2012共享文件夹和防火墙设置
  • (分布式缓存)Redis分片集群
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • .net程序集学习心得
  • .net中我喜欢的两种验证码
  • ::什么意思
  • @Conditional注解详解
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [ASP.NET MVC]Ajax与CustomErrors的尴尬
  • [BZOJ 2142]礼物(扩展Lucas定理)
  • [BZOJ 3282] Tree 【LCT】
  • [BZOJ3757] 苹果树
  • [IE编程] 了解Urlmon.dll和Wininet.dll
  • [JS入门到进阶] 前端开发不能写undefined?这是误区!
  • [Labtools 27-1429] XML parser encountered a problem in file
  • [Oh My C++ Diary]用cout输出流保留输出小数位数的方法
  • [Ruby on Rails系列]4、专题:Rails应用的国际化[i18n]
  • [Thinking in JAVA] 关于内部类的一些知识点
  • [本地跑项目总是要权限校验输密码]Error: EACCES: permission denied
  • [笔记] Nios II基本函数整理
  • [博弈论]
  • [导入]对于adapter模式的类示配模式的java和c#的语法比较