首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用chai.js断言数组交集?

如何使用chai.js断言数组交集?
EN

Stack Overflow用户
提问于 2015-12-22 20:27:28
回答 3查看 729关注 0票数 4

我不喜欢这里的代码,是否有正确的方法在chai中找到交集,使用类似于寻找超集的方法:expect([1,2]).to.contain.members([2])

代码语言:javascript
复制
mocha.setup("bdd");

var intersection = function(arr1, arr2) {
  return arr1.filter(function(n) {
    return arr2.indexOf(n) != -1;
  });
};

describe("Test suite", function() {
    it("should find if arrays intersect", function() {
        chai.expect(intersection([1, 2], [2, 3])).not.to.be.empty;
    });
});

mocha.run();
代码语言:javascript
复制
<link href="https://cdnjs.cloudflare.com/ajax/libs/mocha/2.3.4/mocha.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/2.3.4/mocha.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chai/3.4.1/chai.min.js"></script>

<div id="mocha"></div>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-05-18 10:14:08

柴能做到!

新句法

代码语言:javascript
复制
expect([1,2]).to.contain.oneOf([2,3]);

旧语法

代码语言:javascript
复制
expect([1,2]).to.include.any.members([2,3]);
票数 2
EN

Stack Overflow用户

发布于 2015-12-22 20:49:29

为了检查两个数组的交集,我建议您使用set操作库。嘿,我只是碰巧写了一个!这叫做亲和力,它是免费的。(https://www.npmjs.com/package/affinity)。它是一个集合和关系运算符的库。它还在开发中,但是set操作符工作得很好(有400个单元测试和计数)。

在这种情况下,您可能想做

代码语言:javascript
复制
var affinity = require('affinity');
var set1 = new affinity.Set({type : affinity.Integer, elements : [1, 2]});
var set2 = new affinity.Set({type : affinity.Integer, elements : [2, 3]});
chai.expect(set1.setIntersection(set2).elements()).not.to.be.empty;

// you also have setUnion, setProduct, ...
票数 0
EN

Stack Overflow用户

发布于 2015-12-22 21:03:04

您可以从流行的_.intersection库中使用房客,如下所示:

代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.js"></script>

..。

代码语言:javascript
复制
chai.expect(_.intersection([1, 2], [2, 3])).not.to.be.empty
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34423929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档