Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果在另一个数组中找到对象,如何从一个数组中删除该对象_Javascript_Arrays_Object - Fatal编程技术网

Javascript 如果在另一个数组中找到对象,如何从一个数组中删除该对象

Javascript 如果在另一个数组中找到对象,如何从一个数组中删除该对象,javascript,arrays,object,Javascript,Arrays,Object,我试着让它简单一些,但现在我意识到也许我的想法更复杂一些 此操作用于循环运行: for (var j = 0; j < _USERS.length; j++){ console.log(_USERS[j].useruid); } for (var i = 0; i < promises.length; i++){ console.log(promises[i][0].likedUseruid); } 此操作用于循环运行: for (var

我试着让它简单一些,但现在我意识到也许我的想法更复杂一些

此操作用于循环运行:

for (var j = 0; j < _USERS.length; j++){
      console.log(_USERS[j].useruid);
    }
for (var i = 0; i < promises.length; i++){
      console.log(promises[i][0].likedUseruid);
    }
此操作用于循环运行:

for (var j = 0; j < _USERS.length; j++){
      console.log(_USERS[j].useruid);
    }
for (var i = 0; i < promises.length; i++){
      console.log(promises[i][0].likedUseruid);
    }
然后如何从第一个数组中删除^^^^^,使其显示:

BLRlXKIeWkanHiSCXbBCFRTIaqk1
CMMpvodHJAYdR4RvI5RxZtJ8llW2
sF4gWbZvAMPmrbeHsKzln7LowOx2
没有一个结尾在那里


这些都是对象而不是元素

使用lodash差异

_.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');

尝试以下方法:

var myArray=[{name:“Rich”,gender:“male”},
{姓名:“汉娜”,性别:“女性”};
var mySecondArray=[{姓名:“富有”,性别:“男性”},
{姓名:“劳伦”,性别:“女性”};
var mysecondaraynames=mySecondArray.map(x=>x.name);

log(myArray.filter(x=>mysecondarray.indexOf(x.name)=-1))首先,由于无法直接在js中比较文本对象,因此需要一个函数来比较对象的键值(我建议使用lodash isEqual)

然后,您可以使用array.some进行筛选并比较对象:

myArray=[{name:“Rich”,gender:“male”},
{姓名:“汉娜”,性别:“女性”};
mySecondArray=[{姓名:“富有”,性别:“男性”},
{姓名:“劳伦”,性别:“女性”};
var res=myArray.filter(函数(x){
return!mySecondArray.some(函数(z){
返回相等(z,x)
})
})
console.log(res)

这是最简洁的解决方案。使用lodash,可以执行以下操作:

var myArray=[{name:“Rich”,gender:“male”},
{姓名:“汉娜”,性别:“女性”};
var mySecondArray=[{姓名:“富有”,性别:“男性”},
{姓名:“劳伦”,性别:“女性”};
var result=0.differenceWith(myArray、mySecondArray、0.isEqual);
控制台日志(结果)

可能重复的^^^解决方案使用了
indexOf
,这与
==
相比,后者不适用于上面的示例数组,其中包含等效的“富”对象,但不是相同的“富”对象。“富”对象实际上是相同的对象,还是只是等效的对象?你的问题在数组中包含相同的问题,而不是相同的问题。可能仍然是一个重复的问题,但我相信现在它比重复的问题要复杂一点