Jquery 将每个值相等的对象过滤到单个数组中

Jquery 将每个值相等的对象过滤到单个数组中,jquery,arrays,Jquery,Arrays,我直接切入正题 假设我有一个简单的对象数组,其中一些对象的日期相等: [{value: 67, date: 91}, {value: 48, date: 91}, {value: 15, date: 92}, {value: 77, date: 92}, {value: 10, date: 93}, {value: 5, date: 93}] 如何过滤数组,以便具有相同日期的对象以其各自的数组返回,如下所示: [{value: 67, date: 91}, {value: 48, date:

我直接切入正题

假设我有一个简单的对象数组,其中一些对象的日期相等:

[{value: 67, date: 91}, {value: 48, date: 91}, {value: 15, date: 92}, {value: 77, date: 92}, {value: 10, date: 93}, {value: 5, date: 93}]
如何过滤数组,以便具有相同日期的对象以其各自的数组返回,如下所示:

[{value: 67, date: 91}, {value: 48, date: 91}]
[{value: 15, date: 92}, {value: 77, date: 92}]
[{value: 10, date: 93}, {value: 5, date: 93}]
var items=[{value:67,date:91},{value:67,date:91},{value:67,date:92},{value:67,date:92},{value:67,date:93},{value:67,date:93}];
var存储={};
items.map((item)=>{
存储[JSON.stringify(item)]=true;
})
用于(存储中的元素){
log(JSON.parse(element));
}
使用

var数组=[{value:67,date:91},{value:48,date:91},{value:15,date:92},{value:77,date:92},{value:10,date:93},{value:5,date:93}];
filteredArray=数组。减少((前,当前)=>{
//检查对象是否将unqiue date作为键
如果(!pre.hasOwnProperty(curr['date'])){
//如果不是,则创建一个以唯一日期为键的数组
前[curr['date']]=[];
}
//基于日期将当前值推送到数组
前[curr['date']]推送(curr);
//返回对象
返回预处理;
}, {}); 
控制台日志(filteredArray);
log(Object.keys(filteredArray));
var asArray=Object.keys(filteredArray).reduce((pre,curr)=>{pre.push(filteredArray[curr]);return pre},[]

控制台日志(asArray)
您可以在操作符中使用for..of,
检查
日期
是否为对象的属性,如果为真,则将对象的
日期
添加到该属性处的对象数组中

let arr=[{value:67,date:91}
,{值:67,日期:91}
,{值:67,日期:92}
,{值:67,日期:92}
,{值:67,日期:93}
,{值:67,日期:93}
];
设res={};
for(让arr的{值,日期}){
if(!(res中的日期))res[date]=数组({value,date})
else res[date]=[…res[date],{value,date}]
}

控制台日志(res)是否知道日期属性的值在特定范围内(例如91-93)?预期结果是否为多维数组?否@guest271314,但这不是问题。只要具有相同日期的对象在它们自己的数组中,我们就可以使用它。这些值无关紧要,可以忽略这些值。这将删除3个对象。我需要将日期相等的对象移动到它们自己的数组中。所有对象都必须保留。是否删除对象的3?你指的是哪一个?甚至更好。伙计!这将删除其中3个对象。我需要将日期相等的对象移动到它们自己的数组中。所有对象都必须小心使用
中的
运算符:
即使在原型链中存在键,也会返回true。更好、更安全的方法是使用:
res.hasOwnPropert(date)