javascript - 如何从 Javascript 对象数组获取唯一值

标签 javascript arrays duplicates

所以我有一个对象数组,如下所示:

var array = [
    {name:"Joe", date:'2018-07-01', amt:250 },
    {name:"Mars", date:'2018-07-01', amt:250 },
    {name:"Joe", date:'2018-07-02', amt:250 },
    {name:"Saturn", date:'2018-07-01', amt:250 },
    {name:"Joe", date:'2018-07-02', amt:250 },
    {name:"Jupiter", date:'2018-07-01', amt:250 },
]

我想根据名称金额日期是否重复来过滤数据。 这个甚至不会过滤重复的名称。

var unique = array.filter((v, i, a) =>{ return a.indexOf(v) === i});

如何根据名称金额日期过滤此重复项?

最佳答案

尝试此代码,它仅返回唯一的对象。

var data = [
{name:"Joe", date:'2018-07-01', amt:250 },
{name:"Mars", date:'2018-07-01', amt:250 },
{name:"Joe", date:'2018-07-02', amt:250 },
{name:"Saturn", date:'2018-07-01', amt:250 },
{name:"Joe", date:'2018-07-02', amt:250 },
{name:"Jupiter", date:'2018-07-01', amt:250 },
]
var resArr = [];
data.filter(function(item){
  var i = resArr.findIndex(x => (x.name == item.name && x.date == item.date && x.amt == item.amt));
  if(i <= -1){
        resArr.push(item);
  }
  return null;
});
console.log(resArr)

请告诉我这是否不是您要找的东西。

关于javascript - 如何从 Javascript 对象数组获取唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51537568/

相关文章:

Json.NET (Newtonsoft.Json) - 两个同名的 'properties'?

javascript - 在 &lt;script&gt; 标签的 src 属性中使用通配符?

javascript - Express JS 中的正文解析器

javascript - 理解javascript中多维数组的语法

c - 在具有整数的数组中,一个值在数组中出现两次。你如何确定是哪一个?

javascript - 如何替换点击时的可变内容?

batch-file - 计算纯文本文件中与子字符串匹配的行数

javascript - 与 Angular 2 集成时,Bootstrap Dropdown 和 Bootstrap Tagsinput 不起作用

javascript - 获取数组中所有出现的元素的索引(索引)

python - 保留第一个并删除接下来的重复行