【问题标题】: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;
  • 无顺序,只要第一个条目存在于第二个中

标签: javascript arrays lodash


【解决方案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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-29
      • 1970-01-01
      • 1970-01-01
      • 2020-06-09
      • 2019-11-26
      • 2016-04-22
      相关资源
      最近更新 更多