编程语言
首页 > 编程语言> > javascript-如何为每个对象datetimepicker创建动态数组

javascript-如何为每个对象datetimepicker创建动态数组

作者:互联网

插件:eonasdan/Bootstrap 3 Datepicker

说明:

我想编写一个用户每天可以选择5个不同小时的应用程序.所以我创建了一个数组并添加了每一天(没有重复),例如用户select 31/12/2017和30/12/2017,现在我想给他们这种选择的能力,每天只能选择5个不同的小时.

试过的代码:

var limit = 5;
var i = 0;
var dateArray = new Object();

$('#ss').click(function() {
  if ($('#datetimepicker1 input').val().length > 0) {
    var date = $('#datetimepicker1 input').val();
    var getDate = date.split(' ');
    var unqdate = getDate[0];
    var unqtime = getDate[1];

    if ($.inArray(unqdate, dateArray) == -1) {
      dateArray[unqdate] = unqtime
    }

  }
  console.log(dateArray);
});

JSFiddle

(要进行测试,请选择一个日期,然后单击“保存”按钮,然后检查控制台)

目标:

var dateArray = {
  "31-12-2017": [{
    "time": "14:00"
  }, {
    "time": "17:15"
  }],
  "30-12-2017": [{
    "time": "13:00"
  }, {
    "time": "12:15"
  }]
}

问题:

>我不知道该如何增加每天的时间.这是我第一次使用像这样的数组和对象.
>我想避免重复输入,并且每天只允许五个小时.

我以某种方式学习.

解决方法:

您的JS代码有问题:

var limit = 5;
var i = 0;
var dateArray = new Object();

$('#ss').click(function() {
  if ($('#datetimepicker1 input').val().length > 0) {
    var date = $('#datetimepicker1 input').val();
    var getDate = date.split(' ');
    var unqdate = getDate[0];
    var unqtime = getDate[1];

    if ($.inArray(unqdate, dateArray) == -1) {
      if(dateArray[unqdate] && dateArray[unqdate].length < limit) {
         if(!dateArray[unqdate].find((ele) =>ele.time === unqtime)){
          dateArray[unqdate].push({"time": unqtime})
         }
      } else {
         dateArray[unqdate] = [{"time": unqtime}]
      }
   }

  }
  console.log(dateArray);
});

注意包括时间分割逻辑.您可以使用split by:并获取数组的前2个元素.

标签:arrays,javascript,jquery,object,datetimepicker
来源: https://codeday.me/bug/20191025/1928801.html