使用 lodash 检查数组是不是存在于另一个数组中

Posted

技术标签:

【中文标题】使用 lodash 检查数组是不是存在于另一个数组中【英文标题】:Check if array exists in another array with lodash使用 lodash 检查数组是否存在于另一个数组中 【发布时间】:2017-02-11 11:39:22 【问题描述】:

是否可以检查一个数组

A=[
  "EMPRESA",
  "CD_MAQ",
  "DT_INI_MAQ"
]

存在于另一个数组中

B=[
  "EMPRESA",
  "CD_MAQ",
  "DT_INI_MAQ",
  "CD_WKC",
  "DT_INI_WKC"
]

我想检查数组 A 中的所有条目是否都存在于 B 中

【问题讨论】:

要匹配,顺序必须相同,并且不能有间隔吗? 你可以检查两个数组的intersection是否与数组A的长度相等:var completeIntersect = _.intersection(A, B).length === A.length; 无顺序,只要第一个条目存在于第二个中 【参考方案1】:

var A=[
  "EMPRESA",
  "CD_MAQ",
  "DT_INI_MAQ"
];

var B=[
  "EMPRESA",
  "CD_MAQ",
  "DT_INI_MAQ",
  "CD_WKC",
  "DT_INI_WKC"
];

if ( _.difference(A,B).length === 0)
  // all A entries are into B
<script src="https://cdn.jsdelivr.net/lodash/4.16.2/lodash.min.js"></script>

只需使用_.difference

【讨论】:

【参考方案2】:

你可以使用两个数组的交集,然后和原来的比较。

var A=[
  "EMPRESA",
  "CD_MAQ",
  "DT_INI_MAQ"
];

var B=[
  "EMPRESA",
  "CD_MAQ",
  "DT_INI_MAQ",
  "CD_WKC",
  "DT_INI_WKC"
];

console.log(_.isEqual(_.intersection(B,A), A));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.2/lodash.js"></script>

【讨论】:

以上是关于使用 lodash 检查数组是不是存在于另一个数组中的主要内容,如果未能解决你的问题,请参考以下文章

数组中的至少一个元素存在于另一个数组中

php 如果判断一个二维数组中数据是不是存在于另一个二维数组中?

仅当值不存在时才使用 lodash 推送到数组?

如果数组存在于另一个多维数组中,如何从多维数组中删除该数组? [复制]

SELECT EXISTS 检查行是不是存在于另一个表中

仅当值不存在时才使用lodash push到数组?