文档章节

剔除数组B中含有数组A的内容

BarZu
 BarZu
发布于 2018/03/05 22:33
字数 147
阅读 40
收藏 0

常规便捷写法:

var c = b.filter(item => !a.includes(item))

时间复杂度低的写法

var c = []
;(function (r) {
  var o = {}
  var j = a.length
  for (var i = 0, l = r.length; i < l; i++) {
    if (i < j) {
      o[r[i]] = 1
    } else {
      if (!o[r[i]]) {
        c.push(r[i])
      }
    }
  }
})(a.concat(b))

测试代码

function z() {
  var m = []
  var k = 0
  while (k < 10000) {
    m.push(parseInt(Math.random() * k, 10))
    k++
  }
  return m
}
var a = z()
var b = z()

console.time()
var c = b.filter(item => !a.includes(item))
console.timeEnd()
console.log(c)

console.time()
var c = []
;(function (r) {
  var o = {}
  var j = a.length
  for (var i = 0, l = r.length; i < l; i++) {
    if (i < j) {
      o[r[i]] = 1
    } else {
      if (!o[r[i]]) {
        c.push(r[i])
      }
    }
  }
})(a.concat(b))
console.timeEnd()
console.log(c)

© 著作权归作者所有

BarZu

BarZu

粉丝 50
博文 21
码字总数 20303
作品 4
广州
高级程序员
私信 提问
php 数组字符串搜索array_search技巧

php 数组字符串搜索arraysearch技巧 php 搜索数组字符串我们一般会用到arraysearch和inarray两个函数,arraysearch() 函数与 inarray() 一样,在数组中查找一个键值。如果找到了该值,匹配元...

bengozhong
2016/07/05
49
0
Js中实现数组的排序、乱序、搜索 、去重和删除

所有这些功能,用一个sort()就可以完成了。 1. 排序: 默认的sort()按字符编码排序的: <script type="text/javascript"><!– var testArray=[3,324,5345,6546,134,5654,665]; testArray.so......

微尘鉴
2015/12/15
161
0
Java Collections Framework之ArrayList源码分析

该类是JDK1.2中添加的类,可用于替代Vector(1.1中包含的类库) 其内部持有的也是一个数组。Hierarchy的结构如下: 该类并非线程安全的,主要含有两个字段: elementData:内部持有的数组 si...

zuoer
2011/12/19
201
0
uwp 用win2d获取图片主调颜色

win10在设置颜色里有个从“背景图片中选取一种主题颜色”的选项,还有在很多内容展示软件中都使用了这样的功能。 现在我们需要在 nuget 引用 win2d.uwp 和 Toolkit.uwp 两个库。 首先将一个图...

吃饭/睡觉
2018/08/24
0
0
PHP array_diff() 函数的坑

这次在项目中使用 函数被坑了.有如下两个二维数组: 求这两个数组的差集, 用 函数: 输出结果为, 哈哈, 是不是很坑啊. 如果用在一维数组上, 也只比较了值, 并没有比较键, 也就是说只要值是一样...

zcqshine
2016/07/14
446
4

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
537
10
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
31
0
spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
今天
17
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
49
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
56
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部