javascript - .filter() 来自不同来源的相同数据

标签 javascript react-native

我有 2 个数组:

var yin =  [{"_id": "11111", "name": "blue"}];
var yang = [{"_id": "11111", "name": "blue"}, {"_id": "22222", "name": "red"}];

我尝试像这样过滤掉以下内容:

var yang = yang.filter(function(e){ return this.indexOf(e) < 0; }, yin);

由于某种原因,indexOf(e)正在返回-1我知道这是完全相同的数据。我唯一能想到的是下面有一些关系(可能不是正确的术语)数据,这使得它们看起来不一样,因为对象来自完全不同的数据库来源。

是否有另一种方法可以从来自不同来源的对象数组中过滤出相同的数据?

我知道这个过滤功能有效,因为如果我使用 .push() 推送数据它会很好地过滤掉。

最佳答案

问题是,按照您的意思,两个不同的对象永远不会相等。您需要对对象进行深入比较(手动),或者如果它适合您的需要,您可以检查是否有相同的 _id 属性。

var yin =  [{"_id": "11111", "name": "blue"}];
var yang = [{"_id": "11111", "name": "blue"}, {"_id": "22222", "name": "red"}];

yang = yang.filter(function(e){ 
return this.findIndex(function(y){return y._id === e._id}) < 0; }, yin);

console.log(yang);

关于javascript - .filter() 来自不同来源的相同数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50645384/

相关文章:

javascript - 是否可以在不使用 React 应用程序的情况下使用 React-Speech-Recognition?

javascript - 如何制作流畅的下拉菜单 { 最好通过 css3 或带有解释的小 JS 行 }

android - 在 React Native 的胜利图表中找不到方法 google() 错误

reactjs - 在 React Native 中使用多个上下文提供程序的更好方法

ios - Expo 独立 iOS 应用程序返回 'Undetermined' 权限但在其他任何地方都有效

javascript - jquery - 获取表格单元格的html字符串

javascript - 扩展帮助(后台运行时按键)

Javascript Jquery JSON 发布 - 我的理解正确吗?

react-native - 在 expo 应用程序中安装 magnus-ui 后出现错误 "No Space between hexadecimal literal and identifier"

firebase - 从 firebase 渲染 FlatList 中的数据