所以我有一个对象数组,如下所示:
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/