Angenommen, ich habe eine Liste von Tagen, die der Benutzer auswählen kann (sie können mehrere auswählen).Abrufen einer Tagesbereichszeichenfolge basierend auf dem ausgewählten Tag
Sonntag, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag. Jedem ist eine Nummer zugeordnet (0-6). 0 ist Sonntag und 6 ist Samstag: „- Dienstag Sonntag“
vm.weekDays = [
{name: 'Sunday', number: 0},
{name: 'Monday', number: 1},
{name: 'Tuesday', number: 2},
{name: 'Wednesday', number: 3},
{name: 'Thursday', number: 4},
{name: 'Friday', number: 5},
{name: 'Saturday', number: 6},
]
Angenommen, der Benutzer wählt Sonntag, Montag, Dienstag, sollten wir den String bekommen. Wenn der Benutzer jedoch Sonntag, Montag, Dienstag, Donnerstag auswählt, sollten wir die Zeichenfolge "Sonntag - Dienstag, Donnerstag" erhalten. Und wenn der Benutzer Sonntag, Dienstag, Donnerstag auswählt, sollten sie genau das sehen.
Derzeit speichere ich die Zeichenfolgen in einem Array. Dann werde ich das verwenden, um die Zeichenfolgen anzuzeigen.
Hier ist, was ich bisher:
function test() {
vm.display = [];
var test = _.sortBy(vm.sWeekDays, 'number');
var start = 0;
var end = 0;
if(test.length > 1){
for(var i=0; i <= test.length-2; i++){
if(test[i].number+1 != test[i+1].number) {
start = i + 1;
end = i;
vm.display.push(test[i].name);
}
end = i+1;
}
vm.display.push(test[start].name + " - " + test[end].name);
} else {
vm.display.push(test[0].name);
}
}
Derzeit ich die aufeinander folgenden Tage bekommen zu zeigen, aber wenn ich von Sonntag bis Dienstag und Donnerstag wähle es nicht korrekt angezeigt werden.
Jede Hilfe wird sehr geschätzt.
Wenn der Eingang '[{name: 'Sonntag', Anzahl: 0}, {name: 'Dienstag', Anzahl: 2}, {name: 'Donnerstag', Nummer: 4}] ', drei diskontinuierliche Tage, das Ergebnis ist nicht korrekt ... –
Fixed, Haizhou Liu. Vielen Dank für Ihre Hilfe. –
Vielen Dank für Ihre Hilfe, ich habe versucht, es zu tun und es hat funktioniert. – ImmortalBajan