在javascript中将对象推送到数组中
对象未推入数组在javascript中将对象推送到数组中,javascript,arrays,react-native,Javascript,Arrays,React Native,对象未推入数组 groupEventsArray=[] groupEvents=(eventOnDate)=>{ for(i=0;i<eventOnDate.events.length;i++){ for(j=0;j<eventOnDate.events.length;j++){ if(eventOnDate.events[i].start==eventOnDate.events[j].start) this.grou
groupEventsArray=[]
groupEvents=(eventOnDate)=>{
for(i=0;i<eventOnDate.events.length;i++){
for(j=0;j<eventOnDate.events.length;j++){
if(eventOnDate.events[i].start==eventOnDate.events[j].start)
this.groupEventsArray.push(eventsOnDate.events[i])
}
}
console.log(JSON.stringify(this.groupEventsArray))
}
groupEventsArray=[]
groupEvents=(eventOnDate)=>{
对于(i=0;i请考虑使用forEach()
方法。forEach()
方法按顺序为数组中的每个元素调用一次提供的函数
注意:forEach()
语法
array.forEach(function(currentValue, index, arr), thisValue)
示例
var numbers = [4, 9, 16, 25];
function myFunction(item, index) {
console.log(item, index);
}
numbers.forEach(myFunction)
像这样在数组上循环有助于避免infinte循环。听起来像是一个基本的按关键问题分组数组。您可以通过以下方式完成:
const数据={
完整日期:“2018-10-26T09:30:00.000Z”,
活动:[
{
eventId:'43460',
开始:“1540525500”,
},
{
eventId:'43461',
开始:“1540525500”,
},
{
eventId:'43462',
开始:“1540525500”,
},
{
eventId:'43463',
开始:“1540525510”,
},
],
};
const createKey=(t)=>t.start;
console.log(
对象值(
数据.事件
.map((o)=>[o,createKey(o)])
.reduce((结果,[项目,关键])=>{
结果[键]=结果[键]| |[];
结果[键]。推送(项);
返回结果;
}, {}),
),
)
您可以共享eventOnDate
数组吗?您已经将变量用作groupEventsArray=[]
,但在推送时,您使用的是this.groupEventsArray
而不是groupEventsArray
,但我认为它是在无限循环中阻塞的
除非eventOnDate.events.length
是无限的…但您确实意识到您的代码将推送每个eventOnDate.events
无论如何{“fullDate”:“2018-10-26T09:30:00.000Z”,“事件”:[{“eventId”:“43460”,“标题”:“第一天的概述和第二天的预期”,“描述”:“开始”:“1540525500”,“结束”:“1540525800”,“位置”:“Aura 1和2”,“类型”:“正常”,“限制”:0,“剩余”:-1”,“url”:“网络事件”:0,“alreadyRegistered”:0,“共享”:1,“qa”:1,“日历”:1},示例:EventDetail是这样的