查找数组中的重复数组

2023-12-07

给定一个数组数组,识别重复项的有效方法是什么?

var array = [
  [
    11.31866455078125,
    44.53836644772605
  ],
  [                     // <-- Here's the duplicate
    11.31866455078125,
    44.53836644772605
  ],
  [
    11.371536254882812,
    44.53836644772605
  ],
  [
    11.371536254882812,
    44.50140292110874
  ]
]

我一直在与lodash作为接受的依赖项,我了解如何使用返回“唯一”列表_.uniqWith and _.isEqual:

_.uniqWith(array,_.isEqual)

With 会给出列表的“唯一”版本:

[ 
    [ 11.31866455078125,  44.53836644772605 ],
    [ 11.371536254882812, 44.53836644772605 ],
    [ 11.371536254882812, 44.50140292110874 ]
]

但我不仅仅需要报告唯一元素,还需要重复的元素,最好是第一次出现的索引。

这实际上包含在lodash通过我缺少的一些方法组合来构建库?或者我只是不得不忍受编写循环来比较元素。

可能只是对此感到过度疲劳,所以欢迎重新审视这个问题。

如果有适合的库方法,尽量不要重写函数,所以我基本上坚持:

  1. 仅返回重复项或至少返回与“唯一列表”的比较差异。

  2. 基本上识别数组中数组的“索引”。虽然我认为这可以减少过滤器_.isEqual一旦识别出重复项目。

还尝试避免创建对象哈希/映射并在此处计算键的出现次数,或者至少不作为单独的对象,并且作为可以在功能上“内联”完成的操作。


Lodash提供了很多有用的函数来实现查找第一个重复索引。
使用_.findIndex() and _。是平等的()以下代码将查找第一个重复索引:

var duplicateIndex = _.findIndex(array, function(value, index, collection) {
  var equal = _.isEqual.bind(undefined, value);
  return _.findIndex(collection.slice(0, index), equal) !== -1;
});

或者更快但更详细:

var duplicateIndex = _.findIndex(array, function(value, index, collection) {
  var equal = _.isEqual.bind(undefined, value);
  return _.findIndex(collection, function(val, ind) {
     return ind < index && equal(val);
  }) !== -1;
});

请注意,如果不存在重复项,-1将被退回。
简而言之,该算法迭代数组并回溯当前元素是否不存在。如果是,则返回当前迭代索引。
请检查工作情况demo.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找数组中的重复数组 的相关文章

  • 如何将值发布到输入框中?

    Intro I would like to get the current time after clicking at click and POST the value into input text box Note 假设包含引导样式表
  • 有没有办法动态更改 jqGrid 的单元格值?

    这个问题可能已经被问过很多次了 但我想知道是否可以动态更改 jqgrid 的单元格值 我基本上有一个网格 它通过 JSON 字符串加载数据 在特定列的某些行上 该值可能为 null 因此 预先知道哪个行 ID 是一个问题 然后能够将 nul
  • 在上传之前预览图像 VUEjs [重复]

    这个问题在这里已经有答案了 我知道这个问题已经被问过 但我不知道如何在vuejs中使用代码 我尝试了很多但没有任何结果 我还添加了我的代码 有人可以帮帮我吗 这是我的代码 谢谢 html
  • 查找整数数组中的最大/最小出现次数

    我刚刚编写完一个算法 该算法可以在输入整数数组中查找出现次数最多 最少的值 我的想法是对数组进行排序 所有出现的地方现在都按顺序排列 并使用
  • Javascript 进程是否有多个执行线程?

    背景 我正在创建一个 地址簿 类型的应用程序 有很多条目需要加载 一个想法是首先加载一小部分条目 让用户开始 然后将剩余条目排队 优先考虑用户单击的条目 例如 如果他们单击以 X 开头的名称 请先加载这些名称 然后再处理队列的其余部分 这个
  • 将时间戳转换为一个数组

    在应用程序脚本 谷歌表中运行 我从 API 获取时间戳并返回此结果 1 6370611672429312E18 1 63706107263277082E18 我执行此代码并且工作正常 但问题不在数组中 我每次都需要它在数组中 const t
  • 更新存储在 chrome 扩展本地存储中的对象

    我正在开发一个 chrome 扩展 我将存储服务器发送的对象 例如 我将收到 命令 id 1 类型 A 大小 B 优先级 C 如果我有一个数据库 我会将其作为表中的一行插入commands 使用 chrome storage 我将这些对象的
  • Apache Thrift Java-Javascript 通信

    我正在编写一个基于 Apache Thrift 的 Java 服务器 它将从 Javascript 客户端接收数据 我已经完成了 Java 服务器 但问题是我可以获得 Javascript 客户端的工作示例 我无法找到一个好的示例 构建文档
  • 使用javascript以编程方式触发iOS safari中的复制菜单?

    我正在尝试实现一种用户友好的方式 将一些文本从文本输入字段复制到 iOS Safari 上的剪贴板 我知道无法在这个平台上以编程方式完成此操作 但我希望能够尽可能地指导用户体验 在 iOS Safari 上 当用户手动突出显示某些文本时 会
  • Mac OSX 10.7.4,Xcode 4.4.1,没有 头文件?

    我正在编写一个程序 它将使用 C 标准库的数组容器来保存一些对象 但是 每当我尝试在程序中包含以下代码行时 include
  • 二维数组作为字典的项目

    我想用一个项目的几个属性填充字典 例子 我正在考虑拥有Item 1 and Item 2 as Dictionary键与array这将保留其属性 我需要能够单独访问项目的每个属性 因此将它们连接为一个字符串不是一种选择 我正在考虑类似下面的
  • jquery 中的函数返回未定义[重复]

    这个问题在这里已经有答案了 我在 jquery 中调用的函数返回未定义 我检查了该函数 当我对其进行调试时 它返回正确的数据 function addToPlaylist component type add to pl value pl
  • jQuery:将文本区域滚动到给定位置

    我有一个包含很多文本的文本区域
  • java中如何重新初始化int数组

    class PassingRefByVal static void Change int pArray pArray 0 888 This change affects the original element pArray new int
  • 播放没有音频标签的音频

    是否可以在没有音频标签的情况下仅使用 javascript 播放音频 我通过 tinyMce 编辑器注入脚本 因为我无权访问网站的后端 并且它不支持客户端的音频标签 她只想要当您将鼠标悬停在图像上时发出简单的声音 我已经完成了所有设置 但是
  • 从网页运行 ClickOnce 应用程序,无需用户操作

    我们有一个基于 Java 的 Web 应用程序以及用 C 编写的相同应用程序 如果 java 检查器发现客户端计算机上没有安装 Java 则应该运行该应用程序 这个想法是运行 C 单击一次 http en wikipedia org wik
  • Google 地图 API - 地图未显示 - 没有错误

    我正在尝试将地图从 Google API 加载到 div 中 但是 地图未加载 并且没有输出任何错误 这是代码 google maps var geocoder map function codeAddress address geocod
  • 如何在 React Native 中使用相同的 Firebase 数据库在两个应用程序之间进行通信?

    我有两个不同的应用程序使用相同的实时数据库 在第一个应用程序中 我发送的订单包含一些要保存在数据库中的数据字段 在另一个应用程序中 我只添加一个侦听器 firebase database ref userOrder currentUser
  • onPress 方法中箭头函数与普通函数的行为

    正在学习 Native React 并学习更多关于 javascript 的知识 所以我仍然不明白它的行为的很多事情 我使用 TouchableOpacity 及其 onPress 属性创建了一个按钮组件 为了让它工作 我必须发送我想要执行
  • 为什么 JavaScript 中是 [1,2] + [3,4] = "1,23,4" ?

    我想将一个数组的元素添加到另一个数组中 所以我尝试了以下方法 1 2 3 4 它的回应是 1 23 4 到底是怎么回事 The 操作员没有为数组定义 发生的事情是 JavaScript将数组转换为字符串并将它们连接起来 Update 由于这

随机推荐

  • 如何按一定比例随机选择

    我想以不等的概率在两个选项之间随机选择 例如 当用户按下按钮时 25 的时间会发出声音 A 75 的时间会发出声音 B 我可以手动执行简单的比例 例如 1 4 和 2 4 但我遇到了麻烦比例如 3 5 思考这个问题的一般方法是什么 我的意思
  • 64 位整数的 cmpxchg 示例

    我在 i686 架构中使用 cmpxchg 比较和交换 进行 32 位比较和交换 如下所示 编者注 原来的 32 位示例有错误 但问题不在于它 我相信这个版本是安全的 而且作为奖励 它也可以正确编译 x86 64 另请注意 为此不需要或不建
  • Bash 循环比较文件

    我显然简单地错过了一些东西 并且知道问题是它正在创建一个空白输出 这就是它无法比较的原因 然而 如果有人能对此有所启发 那就太好了 我还没有孤立它 最终 我试图比较md5sum从存储在 txt 文件中的列表到存储在服务器上的列表 如果有错误
  • JQuery 表单提交时功能不起作用

    我在提交表单的 jquery 函数时遇到问题 document ready function message keydown function e if e which 13 e shiftKey edit message 11 submi
  • ant javac 任务使用哪个 javac.exe?

    我面临一个问题 我改名了javac exe在我的机器上并注意到蚂蚁javac任务仍然运行良好 有谁知道它从哪里得到javac exe 实际上 我相信 默认情况下 Ant 会尝试使用以下代码直接执行 java 编译器类 try Class c
  • 在 Firefox 插件中,将事件侦听器添加到整个浏览器窗口时,如何解决“窗口未定义”错误?

    我尝试将事件监听器添加到我的扩展中 我想在每次选项卡处于活动状态 用户单击 或新加载时执行一个函数 我试过这个 window addEventListener DOMContentLoaded checkHost false 它给了我错误
  • Javascript 的链表数据结构

    我正在尝试使用 Javascript 找出链表数据结构 但有一部分我无法理解 function LinkedList var Node function element this element element this next null
  • Google Maps JavaScript API v3 基于已知路线的标记动画

    我一直在寻找一个好的解决方案来使用 Google Maps JavaScript API V3 为标记设置动画 标记将在使用纬度和经度坐标定义的预定路径上进行动画处理 对于我所做的所有研究 我仍然找不到与 JavaScript Google
  • 使用 javascript 检测是否安装了 chrome 扩展程序时出现错误

    这是我的代码 var myExtension chrome management get my extention id if myExtension enabled installed else 来源 http developer chr
  • 使用window.print时如何通过css隐藏标签的href属性

    我有一个 php 页面 带有一个按钮 用户可以通过 window print 函数进行打印 我需要知道如何在打印页面时隐藏 html 标签的 href 属性 例子 如果标签如下 a href myurl com HELLO a 我只想显示
  • 如何使用 BMT 将客户端 UserTransaction 传播到无状态会话 bean

    使用 CMT 的此场景有效 具有 CMT 的无状态会话 bean 一种注释方法 TransactionAttribute TransactionAttributeType MANDATORY 在此方法中 使用 XA 数据源和普通 JDBC
  • 对堆上结构体使用结构体初始化语法

    我有一个简单的结构 我想在堆上初始化并作为函数中的指针返回 struct entry const char const key We don t want the key modified in any way const void dat
  • 同时运行两个winform窗口

    我有两个 C winform NET 4 0 表单 每个表单连续运行单独但相似的自动化任务 不同之处在于它们是不同的流程 工作流 但它们的操作方式足够相似 可以在项目中共享相同的资源 方法 数据模型 程序集等 两种形式都已完成 但现在我不确
  • iPhone:可用磁盘空间

    我正在创建一个录音应用程序 我需要知道有多少可用磁盘空间 不是内存 我怎样才能取回它 Thanks 我还没有尝试过这个 但由于 iPhone 是基于 UNIX 的操作系统 您应该能够使用以下命令获取闪存文件系统上的可用空间statfs系统调
  • 使用 Curl 获取验证码并发送数据并获取结果

    所以基本上我对 php 很陌生 我想从网站获取验证码 然后我想在我的网页上显示它并发送一个小的帖子请求并获取结果 我正在谈论的网站是http www bollywoodmotion com mobile tracker with name
  • 查找数组中的重复数组

    给定一个数组数组 识别重复项的有效方法是什么 var array 11 31866455078125 44 53836644772605 lt Here s the duplicate 11 31866455078125 44 538366