首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS/ES6/lodash查找两个多维数组中缺失元素的索引

基础概念

在JavaScript(ES6)中,多维数组是由嵌套数组组成的数组。lodash是一个流行的JavaScript实用工具库,提供了许多用于操作和处理数据的函数。

查找两个多维数组中缺失元素的索引,意味着我们需要比较两个数组,并找出在一个数组中存在而在另一个数组中不存在的元素及其索引。

相关优势

使用lodash库可以简化复杂的数组操作,提高代码的可读性和可维护性。lodash提供了许多高效且经过优化的函数,如differencefindIndex等,这些函数可以帮助我们快速解决问题。

类型

  • 多维数组:数组中的元素也是数组。
  • 索引:数组中元素的位置标识。

应用场景

这种类型的操作在数据分析、数据同步、数据验证等场景中非常有用。

示例代码

以下是一个使用lodash查找两个多维数组中缺失元素索引的示例:

代码语言:txt
复制
const _ = require('lodash');

// 示例多维数组
const array1 = [[1, 2], [3, 4], [5, 6]];
const array2 = [[1, 2], [3, 4], [7, 8]];

// 扁平化多维数组
const flattenArray1 = _.flattenDeep(array1);
const flattenArray2 = _.flattenDeep(array2);

// 找出缺失的元素
const missingElements = _.difference(flattenArray1, flattenArray2);

// 找出缺失元素的索引
const missingIndexes = missingElements.map(element => {
  return flattenArray1.findIndex(item => item === element);
});

console.log('Missing elements:', missingElements);
console.log('Missing indexes:', missingIndexes);

解释

  1. 扁平化多维数组:使用_.flattenDeep将多维数组扁平化为一维数组。
  2. 找出缺失的元素:使用_.difference找出在一个数组中存在而在另一个数组中不存在的元素。
  3. 找出缺失元素的索引:使用mapfindIndex结合,找出缺失元素在原数组中的索引。

参考链接

通过这种方式,我们可以高效地找出两个多维数组中缺失元素的索引。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

查找某个元素在数组中对应的索引

1 问题 已知一个数组内元素为 { 19, 28, 37, 46, 50 } 。用户输入一个数据,查找该数据在数组中的索引,并在控制台输出找到的索引值,如果没有查找到,则输出 -1。...2 方法 首先定义一个数组,在键盘录入要查找的数据,用一个变量接收。再定义一个变量,初始值为-1。遍历数组获取数组中的每一个元素。...然后将键盘输入的数据和数组中的每一个元素进行比较,如果值相同就把该值对应的索引赋值给索引变量,并结束循环。最后输8出索引变量。...; }else{ System.out.println("您输入的数字" + a + "在数组中的索引是:" + dataIndex); } }...if(a == arr[i]){ return i; } } return -1; } } 3 结语 针对查找某个元素再数组中对应的索引这个问题

3.2K10
  • lodash源码分析之baseFindIndex中的运算符优先级

    ——北岛《城门开》 本文为读 lodash 源码的第十篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash...作用与用法 baseFindIndex 是内部方法,其作用类似于ES6的 findIndex,查找符合条件的第一个元素的索引。...从代码中很容易看到,predicate 是传递进来的函数,在 baseFindIndex 调用该函数,如果返回的结果为真值,则中止查找,返回索引。...前缀自增返回的是自增后的结果,而在循环条件中就要将索引 index 增加1,这样会忽略掉第一个需要遍历的元素,作为补救,在开始遍历前,需要将 index 减少1。...因为在向前查找时,最终要查找到数组索引 0 的位置,后缀自减返回的是自减前的数值,因此当 index 为 1 时,自减后的 index 为 0 ,但是在循环条件中依然拿 1 来进行判断,所以使得索引 0

    772110

    lodash源码分析之baseFindIndex中的运算符优先级

    ——北岛《城门开》 本文为读 lodash 源码的第十篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash...作用与用法 baseFindIndex 是内部方法,其作用类似于ES6的 findIndex,查找符合条件的第一个元素的索引。...从代码中很容易看到,predicate 是传递进来的函数,在 baseFindIndex 调用该函数,如果返回的结果为真值,则中止查找,返回索引。...前缀自增返回的是自增后的结果,而在循环条件中就要将索引 index 增加1,这样会忽略掉第一个需要遍历的元素,作为补救,在开始遍历前,需要将 index 减少1。...因为在向前查找时,最终要查找到数组索引 0 的位置,后缀自减返回的是自减前的数值,因此当 index 为 1 时,自减后的 index 为 0 ,但是在循环条件中依然拿 1 来进行判断,所以使得索引 0

    70380

    如何答一道惊艳面试官的数组去重问题?

    return arr; } 思想: 双重 for 循环是比较笨拙的方法,它实现的原理很简单:先定义一个包含原始数组第一个元素的数组,然后遍历原始数组,将原始数组中的每个元素与新数组中的每个元素进行比对...先说一下 == 和 === 区别 === 严格相等,会比较两个值的类型和值== 抽象相等,比较时,会先进行类型转换,然后再比较值 想更详细了解转换过程的可以看这篇文章js 中 == 和 === 的区别...为 false,但是这两个元素是重复的。...以上的所有数组去重方式,应该 Object 对象去重复的方式是时间复杂度是最低的,除了一次遍历时间复杂度为O(n) 后,查找到重复数据的时间复杂度是O(1),类似散列表,大家也可以使用 ES6 中的 Map...lodash 如何实现去重 简单说下 lodash 的 uniq 方法的源码实现。

    1.3K40

    前端MVC Vue2学习总结(六)——axios与跨域HTTP请求、Lodash工具库

    提供的辅助函数主要分为以下几类,函数列表和用法实例请查看 Lodash 的官方文档: Array,适用于数组类型,比如填充数据、查找元素、数组分片等操作 Collection,适用于数组和对象类型,部分适用于字符串...1) _.map(collection, [iteratee=_.identity], [thisArg])  作用:创建一个经过 iteratee 处理的集合中每一个元素的结果数组. iteratee...参数1): 被操作的数组.  参数2): 去掉的元素个数.  返回值(Array): 数组的剩余部分.  ... predicate条件的第一个元素的索引,而不是返回元素本身.   ...返回值(Number): 符合查询条件的元素的索引值, 未找到则返回 -1.

    5.9K100

    Python数据分析笔记——Numpy、Pandas库

    Numpy库 Numpy最重要的一个特点是就是其N维数组对象,即ndarray,ndarray是一个通用的同构数据多维容器,其中的所有元素必须是相同类型的。...3、基本的索引和切片 (1)元素索引、根据元素在数组中的位置来进行索引。...一维数组的索引 多维数组的索引 (2)切片索引 一维数组的切片索引(与Python列表的切片索引一样) 多维数组的切片索引 (3)花式索引 元素索引和切片索引都是仅局限于连续区域的值,而花式索引可以选取特定区域的值...Numpy数组的基本运算 1、数组和标量之间的预算 2、元素级数组函数 是指对数组中每个元素执行函数运算。下面例子是对数组各元素执行平方根操作。...相当于Excel中vlookup函数的多条件查找中的多条件。 对于层次化索引对象,选取数据的方式可以通过内层索引,也可以通过外层索引来选取,选取方式和单层索引选取的方式一致。

    6.4K80

    从map函数引发的讨论

    ES6提供的map函数非常老实,有一说一,它认准数组类型而不变初心,即使是JS这样的动态语言,它似乎坚持近乎执著而强迫症的洁癖感知能力,对于非法的undefined不能容忍,不出意外,对于这样的场景它会无情地抛出一个错误...让我们先回归本源,看看JS的undefined到底是何妖物? 在JS中,定义了两种颇为相似的原始类型:Null和Undefined。其中,Undefined类型只有一个值,即undefined。...当然,在ECMAScript中,它认为undefined其实是从null派生出来的,换言之,它是null的一种特例。 再来看JS中的数组。...至于map函数,其实就是针对数组元素的一个转换,返回结果是存放了转换后元素的新数组。...终审判决是:我们更期望使用lodash这种静悄悄没有副作用的map方式。倘若硬要使用ES6的map,为了保证程序的健壮性,就必须对变量进行这样的判断。

    1.4K90

    javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法

    javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法 前言 在js中,数组和对象的复制如果使用=号来进行复制,那只是浅拷贝。...对象的深拷贝相比数组也没有困难许多,列举两个方法。...理解各种方法是必须的。希望对大家有所帮助。 本文中并没有对异常进行处理,主要在讲原理。更多的数组以及对象的操作方法,可以参考lodash的源码,查看它的源码可以让你的js基础变得非常牢固。...我也在学习中。 2017年10月31日补充,使用es6提供的扩展运算符的方法实现深拷贝,简单,高效。...而在绝大多数场景下,文中的方法是适用的。 想要简便的支持多维数据的深拷贝,可以直接适用 JSON 方式。或适用 lodash 工具实现。

    3.1K10

    前端知识点总结js篇(中)

    * shift() 用于把数组的第一个元素删除,并返回第一个元素的值。 * unshift() 向数组的开头添加一个或更多元素,并返回新的长度。...* Substring(start,end) ---以两个参数中较小的一个作为起始位置,较大的一个作为结束位置。 * Split(字符串/正则,length) 字符串转数组。...JS中的原型链的理解 这篇文章讲解的很详细:juejin.cn/post/693449… * 原型:js中每个对象都有一个与它关联的对象,叫做原型对象。...* 构造函数:用new来调用,就是为了创建一个自定义类 * 原型链:js查找属性得过程中,在自有的属性中找不到就去原型对象中查找,原型对象中找不到,就去原型对象得原型中查找, 一层一层向上查找的机制...新建一个空数组,遍历需要去重的数组,将数组元素存入新数组中,存放前判断数组中是否已经含有当前元素,没有则存入。此方法也无法对NaN去重。

    24020

    javascript数组常用函数与实战总结

    前言 在node.js后端开发过程中,数组这种数据类型(Object类型)再常见不过,本文主要介绍数组的一些常见函数,以及在实战开发过程中能更好的操作数组的lodash包。...删除数组元素 splice 说明: 当splice传递两个参数的时候,参数1:开始删除的下标位置,参数2:删除数组元素的个数,返回新的数组。...(_.uniq(array)); 数组求和 lodash中的函数 _sum 代码: let sorce=_.sum([32,45,86,43]); 获取数组中指定键值对的值组成数组 lodash中的函数...array,'id'); //[1,2] 获取数组中某个值的角标 注意:下面两个函数都是返回遇到的第一个符合的值的下标值。...lodash中的函数,在使用的时候需要先 const _ = require('lodash'); 一道面试题: 给定任意非负整数,反复累加各位数字直到结果为个位数为止。

    1.1K20

    Lodash那些“多余”和让人眼前一亮的 API

    一、收获 lodash那些功能强大的API lodash那些“多余”的API及原生JS对应写法 二、 Lodash Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。...采用函数类API,多数API都不修改传入的参数; Lodash功能强大,涵盖了前端开发中能遇到的大部分逻辑功能点,使用Lodash能大大提高我们的开发效率。但这也有一个弊端:便利往往会使我们变"懒"。...,可用于清空数组 // [1, 2] 眼前一亮的API pullAt (根据下标选择元素,分到两个数组) takeRight ( 返回从结尾元素开始n个元素的数组切片 ) // 倒数解构...}] } } xor( 创建一个给定数组唯一值的数组 ) 眼前二亮的API remove(元素筛选,分到两个数组) sortedUniq (去重,排序) takeRightWhile ( 从array...)| findLast(查找最后一个)| includes(抱哈某个元素)。

    3.5K10

    ES6语法翻译Lodash计划:数组篇第3期

    计划 ES6语法翻译Lodash计划是本人为自己制定的半年Flag?。...目的是使用ES6语法实现Lodash的单个函数功能,每次分享两个Lodash函数的翻译,涉及到Lodash的类型、字符、数值、数组、对象、函数、集合和工具?。...使用ES6语法翻译Lodash的过程中,有些函数会在ES5语法中存在原型参照,有些比较复杂的函数会翻译成简洁版函数,有些函数可能存在翻译不完整的问题?。...DifferenceBy函数 功能:移除数组中的指定值(使用迭代器) 描述:使用迭代器将数组中被指定数组包含的值移除,返回由剩余值组成的数组 说明:迭代器iterator可认为是map(),将元素格式化后再过滤...),将元素比较后再过滤 在线演示 备注:比较器可使用_.isEqual,此函数判断全等比较全面 结语 这个ES6语法翻译Lodash计划只是我其中一个比较独特的想法,仅供学习交流和拓展思维所用,不是什么特别的标准

    57720

    06_JavaScript数组

    arr[j]; // 二维数组元素累计相加 } ES6 新增的 for…of 语法 在 ES6 中,新增了一种 for…of 语法,可以更方便地对数组进行遍历。...通过解构赋值完成两个变量数值的交换。 3.6 练习作业 查找最大值与最小值,输入5门成绩,求总分,平均分、最高分,最低分 假设待查找数组的第一个元素为最大值max和最小值min。...在 Web 项目开发中,还经常通过多维空数组添加元素的方式来创建多维数组。...实现原理:在冒泡排序的过程中,按照要求从小到大排序或从大到小排序,不断比较数组中相邻两个元素的值,较小或较大的元素前移。 比较相邻的元素。如果第一个比第二个大,就交换他们两个。...6.2 检索方法 在开发中,若要检测给定的值是否是数组,或是查找指定的元素在数组中的位置。

    10610

    TypeScript 快速入门

    缺失了类型系统的可靠性【不靠谱】 早期JavaScript应用简单,JavaScript是一个脚本语言,没有编译环节的(静态类型语言需要编译 检查的)在大规模应用下,JavaScript的灵活多变的优势...DOM BOM等 命令:yarn tsc 编译整个项目,编译后的js文件就会存放到dist目录中 原始类型在TS中的应用 /* 原始类型在TS中的应用 */ const a:string = 'foo...} // sum(1,2,3,4,'foo'); 元组类型 元组:就是一个明确元素数量以及元素类型的一个类型 各个元素的类型不必要完全相同 const tuple:[number,string] =...[18,''];//类型不相符 或者超出元素的数量都会报错 const [age,name] = tuple; //元组类型现在非常常见了 //比如 entries 得到一个键值数组,键值数组就是一个元组...ES6以前通过 函数+原型来模拟的类 class 在ES6中就添加了这一个特性,而TypeScript在ES6的基础上对class添加了访问修饰符,类的属性必须要先声明属性并且必须有一个初始值。

    1.6K10

    每日三题-寻找两个正序数组的中位数 、搜索旋转排序数组、 在排序数组中查找元素的第一个和最后一个位置

    ‍个人主页: 才疏学浅的木子 ‍♂️ 本人也在学习阶段如若发现问题,请告知非常感谢 ‍♂️ 本文来自专栏: 算法 算法类型:Hot100题 每日三题 寻找两个正序数组的中位数 搜索旋转排序数组...在排序数组中查找元素的第一个和最后一个位置 寻找两个正序数组的中位数 解法一 暴力 class Solution { public double findMedianSortedArrays...if((m+n) % 2 == 0)return ((double)left+right)/2; else return right; } } 搜索旋转排序数组...int[] nums, int target) { int n = nums.length; int left = 0,right = n-1; //数组...+ 1; } } } } return -1; } } 在排序数组中查找元素的第一个和最后一个位置

    1.3K20

    Javascript -- 数组(一)

    一、有关数组的相关API 1.1、数组方法 方法名 描述 concat 连接两个或更多数组,并返回结果 every 对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true filter...这个方法没有返回值 join 将所有的数组元素连接成一个字符串 indexOf 返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1 lastIndexOf 返回在数组中搜索到的与给定参数相等的元素的索引里最大的值...map 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组 reverse 颠倒数组中元素的顺序,原先第一个元素现在变成最后一个,同样原先的最后一个元素变成了现在的第一个 slice 传入索引值...,将数组里对应索引范围内的元素作为新数组返回 some 对数组中的每一项运行给定函数,如果任一项返回true,则返回true sort 按照字母顺序对数组排序,支持传入指定排序方法的函数作为参数 toString...ES7新增 find 根据回调函数给定的条件从数组中查找元素,如果找到则返回该元素 findIndex 根据回调函数给定的条件从数组中查找元素,如果找到则返回该元素在数组中的索引 fill 用静态值填充数组

    77210
    领券