我有下面的JSON数组。我想为dayOfWeek
schedules
设置时间表
const dummy = { home1: "09:30", away: "05:30" }
const data = {
rooms: [
{
roomId: 1,
schedules: [
{ home1: "05:05", dayOfWeek: 1, away: "20:30" },
{ home1: "06:05", dayOfWeek: 5, away: "21:30" },
{ home1: "07:05", dayOfWeek: 7, away: "22:30" }
]
},
{
roomId: 2,
schedules: []
}
]
}
现在我有点困惑。我需要将相同的schedules
复制到room: 2
中的room: 1
中,并且不存在这些副本,我想用dayOfWeek
预期产量
const finalArray = [
//room: 1
{ home1: "09:30", dayOfWeek: 2, away: "05:30", roomId: 1 }, //dummy
{ home1: "09:30", dayOfWeek: 3, away: "05:30", roomId: 1 }, //dummy
{ home1: "09:30", dayOfWeek: 4, away: "05:30", roomId: 1 }, //dummy
{ home1: "09:30", dayOfWeek: 6, away: "05:30", roomId: 1 } //dummy
//room: 2
{ home1: "05:05", dayOfWeek: 1, away: "20:30", roomId: 2 }, //schedules from room1
{ home1: "06:05", dayOfWeek: 5, away: "21:30", roomId: 2 }, //schedules from room1
{ home1: "07:05", dayOfWeek: 7, away: "22:30", roomId: 2 }, //schedules from room1
{ home1: "09:30", dayOfWeek: 2, away: "05:30", roomId: 2 }, //dummy
{ home1: "09:30", dayOfWeek: 3, away: "05:30", roomId: 2 },//dummy
{ home1: "09:30", dayOfWeek: 4, away: "05:30", roomId: 2 },//dummy
{ home1: "09:30", dayOfWeek: 6, away: "05:30", roomId: 2 }//dummy
]
我尝试过的事情
我可以从时间表的第一个元素设置虚拟数据。但是不知道如何检查rooms.schedules
数组中的每个元素
const dummy = _.first(data.rooms[0].schedules) ? _.first(rooms[0].schedules) : { 'home1': '05:30', 'home2': '09:30', 'away': '17:30', 'sleep': '20:30' }
const finalArray = []
let output = []
for (let room of data.rooms) {
let days = []
room.schedules.map(s => days.push(parseInt(s.dayOfWeek)))
days = new Set(days)
for(let i = 1; i <= 7; i++) {
if(!days.has(i)) finalArray.push({ ...obj, dayOfWeek: i, id: room.id })
}
}
答案 0 :(得分:0)
<TouchableOpacity
style={ this.state.active? styles.btnActive : styles.btn}
onPress={() => this.setState({active: !this.state.active})}>
</TouchableOpacity>