当前位置: 首页 > 知识库问答 >
问题:

通过用户界面创建具有小时数的对象

夏侯彬郁
2023-03-14

我无法创建正确的对象。我有一个存储时间的日历。例如,他想要一个时间表来保存这样一个物体

"timeTable":{
    "0": [{"from":"08:00","to":"12:00"}, {"from":"14:00","to":"18:00"}],
    "1": [{"from":"08:00","to":"16:00"}]
  }

如何,点击保存按钮后,发送这样一个对象到:

 timeTable: Map<number, Array<HourScheduleDefinitionModel>>;

接口:

interface HourScheduleDefinitionModel {
  from: string;
  to: string;
}

https://stackblitz.com/edit/angular-ivy-e92ezv?file=src/app/app.component.ts

共有3个答案

皇甫展
2023-03-14
const getTimeline = () => {
  result = []
  for(item of data){
    var start = 0, timeline = [];
    for(var i = 0; i < item.items.length; i++){
      if(item.items[i] === 1){
        if(start === 0) {
          start = i;
        }
      }else{
        if(start !== 0){
          timeline.push({"from": start < 10 ? "0" + start + ":00" : start + ":00" , "to": i < 10 ? "0" + i + ":00" : i + ":00"})
          start = 0;
        }
      }
  
      if(start !== 0 && i === item.items.length - 1){
        timeline.push({"from": start < 10 ? "0" + start + ":00" : start + ":00" , "to": "00:00"})
      }
    }
  
    result.push({ 
      day: item.name,
      timeline : timeline
    })
  }
  return result;  
}

示例数据:-

data = [
  {
    name: 'Monday',
    items: [0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],
    active: true
  },
  {
    name: 'Tuesday',
    items: [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
    active: true
  }
]

结果:-

console.log(getTimeline(data));

[
  {
  day: 'Monday',
  timeline: [
      { from: '01:00', to: '02:00' },
      { from: '03:00', to: '04:00' },
      { from: '20:00', to: '00:00' }
    ]
  },

  {
    day: 'Tuesday',
    timeline: [ { from: '01:00', to: '04:00' }, { from: '20:00', to: '21:00' } ]
  }
]
越涵衍
2023-03-14

我认为您需要数组(按数字索引)而不是对象(按字符串索引):

TS游乐场链接

interface HourScheduleDefinitionModel {
  from: string;
  to: string;
}

type TimeTable = (HourScheduleDefinitionModel[])[];

const tt: TimeTable = [
  [{"from":"08:00","to":"12:00"}, {"from":"14:00","to":"18:00"}], // 0
  [{"from":"08:00","to":"16:00"}], // 1
];

console.log(tt[0]);
console.log(tt[1]);
韩欣怿
2023-03-14

下面是一个向对象存储添加新映射的工作示例。请注意,代码中没有使用时间表类型,因为@AluanHaddad的注释与我试图解释的内容相同。

    var hours = {"timeTable":{
        "0": [{"from":"08:00","to":"12:00"}, {"from":"14:00","to":"18:00"}],
        "1": [{"from":"08:00","to":"16:00"}]
      }};

    interface HourScheduleDefinitionModel {
      from: string;
      to: string;
    }

    var newHour: HourScheduleDefinitionModel = {
      from: "09:00",
      to: "10:00"
    }

    var key = 2;
    var value = [newHour];
    hours.timeTable[key.toString()] = value

    console.log(hours)

游乐场

 类似资料:
  • 问题内容: 今天,我和一个朋友吵了一架,他声称可以创建接口对象。当我说这不可能的时候,他给我看了下面的代码,看起来与匿名类相似。现在的问题是,正确的答案是什么? 这真的可以称为创建接口“对象”吗? 问题答案: 不,这是创建实现该接口的匿名类的实例。 这是Java语言规范第15.9节中的明确答案: 不合格和合格的类实例创建表达式都可以选择以类主体结尾。这样的类实例创建表达式声明一个匿名类(第15.9

  • 在开始“杂货铺”app编程之前,理解 NativeScript app 的文件夹结构是比较重要的。这有助于你了解在哪里放置新文件,又能理解一些在 NativeScript 内部将要发生事情。 那就用你的文本编辑器打开你的app文件夹 sample-Groceries ,我们继续深入。 本节内容 2.1: Directory structure 目录结构 2.2: Adding UI compone

  • 问题内容: 是否有用于eclipse的插件,可让我从界面快速生成新类? 无需在新的类对话框中进行键入 理想情况下,让我选择一个像Impl这样的标准名称来生成它 问题答案: 我还没有看到执行此操作的任何插件,但是对我来说,这似乎是一个合理的捷径。 以下内容可以构成插件直接从所选接口生成类的基础。它可以在我的box(TM)上使用。 当前假定类将使用带有“ Impl”后缀的接口名称,并且如果该类型已经存

  • 需要创建一个新的用户组,允许在hybris中删除客户。 我们需要一个有权删除客户的用户组

  • 6.1.创建用户界面的两种方法 Android提供了两种风格可供我们创建用户界面(UI):一种是声明风格,另一种是编程风格。它们之间的差别不小,但是我们想做好界面,往往离不开它们的相互配合。

  • 当我们构建一个更加复杂的带有成百控件的用户界面时,用C程序做这些控件的所有设置工作是非常麻烦的,而且也让做些调整变得几乎不可能。 谢天谢地, GTK+ 支持将用户界面布局从业务逻辑中分离。这是一种通过XML格式实现的UI描述,它可以通过Gtkuilder 类进行解析。 Example 4. Packing buttons with GtkBuilder 新建一个名为 example-4.c 的文件