【发布时间】:2016-10-27 09:46:03
【问题描述】:
假设我有一个用户可以选择的日期列表(他们可以选择多个)。
周日、周一、周二、周三、周四、周五、周六。每个都有一个与之关联的数字(0-6)。 0 表示周日,6 表示周六:
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},
]
假设用户选择星期日、星期一、星期二,我们应该得到字符串“Sunday - Tuesday”。但是,如果用户选择星期日、星期一、星期二、星期四,我们应该得到字符串“星期日 - 星期二,星期四”。如果用户选择周日、周二、周四,那么他们应该会看到准确的结果。
目前,我将字符串存储在一个数组中。然后,我将使用它来显示字符串。
这是我目前所拥有的:
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);
}
}
目前,我可以连续显示几天,但如果我选择从周日到周二和周四,则无法正确显示。
非常感谢任何帮助。
【问题讨论】:
标签: javascript angularjs string for-loop weekday