Javascript 邮递员:如何断言所有数组元素都存在于其他数组中?

Javascript 邮递员:如何断言所有数组元素都存在于其他数组中?,javascript,arrays,json,postman,postman-testcase,Javascript,Arrays,Json,Postman,Postman Testcase,我断言array1中的元素是否存在于array2中,下面是数组示例 var array1 = [ { "name": "appe", "loc": "war", "order": 5, "neck": "NO", "end": false }, { "name": "con", "l

我断言array1中的元素是否存在于array2中,下面是数组示例

var array1 = [
        {
            "name": "appe",
            "loc": "war",
            "order": 5,
            "neck": "NO",
            "end": false
        },
        {
            "name": "con",
            "loc": "conve",
            "order": 15,
            "neck": "NO",
            "end": true
        }]

var array2 = [{"neck":"NO"
"end":true,
"loc":"conve",
"name":"con",
"order":15
}]
我试过的代码-

const lodash = require("lodash");
    for(var i = 0; i < array2.length; i++ )
    {
            tests['response json contain Data'] = lodash._.has(points, array2[i]);
            //pm.expect(array2[i]).to.be.oneOf(array1);

    }

编辑 在尝试另一个尝试2-

pm.expect(array2[i]).to.be.oneOf(array1);
错误-

AssertionError | expected { Object (name, loc, ...) } to be one of [ Array(20) ]
尝试3-

pm.expect(array1).to.deep.equal(array2);
错误-

AssertionError | expected [ Array(20) ] to deeply equal [ Array(18) ]
我做错了什么?。我想要的是,如果array2中的任何一个元素不在array1中,它应该失败。
谢谢

var数组1=[{
“名称”:“appe”,
“loc”:“战争”,
“命令”:5,
“颈部”:“否”,
“结束”:错误
},
{
“名称”:“con”,
“loc”:“CONVER”,
“命令”:15,
“颈部”:“否”,
“结束”:正确
}
]
变量array2=[{
“颈部”:“否”,
“结束”:没错,
“loc”:“CONVER”,
“名称”:“con”,
“命令”:15
}]
array2.forEach(项目=>{
如果(!阵列1.包括(项目)){
抛出“不包括”
}
})
我想要的是,如果array2中的任何一个元素不在array1中,它应该失败

var数组1=[{
“名称”:“appe”,
“loc”:“战争”,
“命令”:5,
“颈部”:“否”,
“结束”:错误
},
{
“名称”:“con”,
“loc”:“CONVER”,
“命令”:15,
“颈部”:“否”,
“结束”:正确
}
]
变量array2=[{
“颈部”:“否”,
“结束”:没错,
“loc”:“CONVER”,
“名称”:“con”,
“命令”:15
}, {
“脖子”:“不”,
“结束”:没错,
“loc”:“CONVER”,
“名称”:“con”,
“命令”:15
}];
//在array2上查找至少一个不在array1中的对象。
//有些函数根据
//使用执行的处理程序的findIndex的结果
//该函数每一个。
//函数every基本上比较每个键值
//在array2和array1之间。
让result=array2.some(o=>array1.findIndex(ao=>Object.entries(o).every([key,value])=>ao[key]==value))==1);

console.log(结果);//返回true,因为一个元素不在array1
中。Postman默认情况下会将断言库包含在其应用程序中。因此,您需要使用
to.deep.equal
。它将比较嵌套数组和嵌套对象

解决方案:

pm.test("verify two objects", function () {
  var array1 = [{
    "name": "appe",
    "loc": "war",
    "order": 5,
    "neck": "NO",
    "end": false
  },
  {
    "name": "con",
    "loc": "conve",
    "order": 15,
    "neck": "NO",
    "end": true
  }];

  var array2 = [{
    "neck": "NO",
    "end": true,
    "loc": "conve",
    "name": "con",
    "order": 15
  }, 
  {
    "neck": "NOo",
    "end": true,
    "loc": "conve",
    "name": "con",
    "order": 15
  }];

  pm.expect(array1).to.deep.equal(array2); // Failed
  pm.expect(array1).to.deep.equal(array1); // Passed

});

感谢您纠正我的错误,当我从array1中筛选出数据并使其长度等于array2时,它对我起到了作用,此外,还没有尝试过您的解决方案,但感谢您回答这个问题
pm.test("verify two objects", function () {
  var array1 = [{
    "name": "appe",
    "loc": "war",
    "order": 5,
    "neck": "NO",
    "end": false
  },
  {
    "name": "con",
    "loc": "conve",
    "order": 15,
    "neck": "NO",
    "end": true
  }];

  var array2 = [{
    "neck": "NO",
    "end": true,
    "loc": "conve",
    "name": "con",
    "order": 15
  }, 
  {
    "neck": "NOo",
    "end": true,
    "loc": "conve",
    "name": "con",
    "order": 15
  }];

  pm.expect(array1).to.deep.equal(array2); // Failed
  pm.expect(array1).to.deep.equal(array1); // Passed

});