Я пытаюсь запустить цикл внутри цикла, чтобы получить допустимые даты, но, похоже, не работает нормально. моя выборка данных, какцикл в цикле в javascript
эти действительные дни [ 'Monday', 'Thursday', 'Friday', 'Sunday' ]
и они являются действительными даты
[ Sun Oct 09 2016 05:00:00 GMT+0500 (Pakistan Standard Time),
Mon Oct 10 2016 05:00:00 GMT+0500 (Pakistan Standard Time),
Tue Oct 11 2016 05:00:00 GMT+0500 (Pakistan Standard Time),
Wed Oct 12 2016 05:00:00 GMT+0500 (Pakistan Standard Time),
Thu Oct 13 2016 05:00:00 GMT+0500 (Pakistan Standard Time),
Fri Oct 14 2016 05:00:00 GMT+0500 (Pakistan Standard Time),
Sat Oct 15 2016 05:00:00 GMT+0500 (Pakistan Standard Time),
Sun Oct 16 2016 05:00:00 GMT+0500 (Pakistan Standard Time) ]
То, что я хочу сделать: найти только те даты, которые равны VAid дней
Что я делаю это:
_valid_dates = (dates, days) ->
validDates = dates
dates.forEach (date) ->
days.forEach (day) ->
if moment_strf(date).strftime("%A") != day
validDates.remove date
else
console.log "Am valid day", moment_strf(date).strftime("%A")
validDates
Но результаты не наступают, как я ожидаю. Согласно данным, оставшиеся даты должны быть
[ Sun Oct 09 2016 05:00:00 GMT+0500 (Pakistan Standard Time),
Mon Oct 10 2016 05:00:00 GMT+0500 (Pakistan Standard Time),
Thu Oct 13 2016 05:00:00 GMT+0500 (Pakistan Standard Time),
Fri Oct 14 2016 05:00:00 GMT+0500 (Pakistan Standard Time),
Sun Oct 16 2016 05:00:00 GMT+0500 (Pakistan Standard Time) ]
Любая помощь будет оценена! Благодаря
Что 'moment_strf' и' validDates .remove'? – godfrzero
Сколько записей у вас в вашем результирующем наборе? Это всегда одно и то же или нет? Как ваши результаты заселяются? –
'validDates = dates' - это мелкая копия (т. Е. Копируется только ссылка, а не то, на что она указывает), поэтому, возможно, вы попадаете в старый« удаление из массива при итерации по ней ». Вероятно, вам будет лучше составить отдельный список вещей, которые вы хотите, и оставить аргументы в покое. –