我无法创建正确的对象。我有一个存储时间的日历。例如,他想要一个时间表来保存这样一个物体
"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
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' } ]
}
]
我认为您需要数组(按数字索引)而不是对象(按字符串索引):
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]);
下面是一个向对象存储添加新映射的工作示例。请注意,代码中没有使用时间表
类型,因为@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 的文件