Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 嵌套数组-跟踪数组中对象的位置_Javascript_Arrays - Fatal编程技术网

Javascript 嵌套数组-跟踪数组中对象的位置

Javascript 嵌套数组-跟踪数组中对象的位置,javascript,arrays,Javascript,Arrays,我正在创建一个看板/特雷罗水疗中心作为个人项目。“董事会”有许多“名单”。“列表”包含多个“项目”,一个项目属于一个“列表”。通过扩展trello的列表功能,项目也可以在列表中分组 为这些用例设计的最佳方法是什么?: 用户可以手动重新排列其线路板上的项目-在列表之间、列表内、跨列表的组内和组外。还可以将两个单独的项目组合在一起,以创建一个新组,其中包含该新组中的两个项目 方法1: 所有项目都保留对父列表的引用。我在前端进行了一些渲染,以便在obj1.groupid==obj2.groupid的位

我正在创建一个看板/特雷罗水疗中心作为个人项目。“董事会”有许多“名单”。“列表”包含多个“项目”,一个项目属于一个“列表”。通过扩展trello的列表功能,项目也可以在列表中分组

为这些用例设计的最佳方法是什么?:

用户可以手动重新排列其线路板上的项目-在列表之间、列表内、跨列表的组内和组外。还可以将两个单独的项目组合在一起,以创建一个新组,其中包含该新组中的两个项目

方法1: 所有项目都保留对父列表的引用。我在前端进行了一些渲染,以便在obj1.groupid==obj2.groupid的位置对项目进行适当分组

我从项目列表开始,筛选不在组中的项目,然后在视图中的单个卡片上呈现这些项目。然后,我将剩余的数组缩减为按groupId对项目进行分组。这些分组的项目然后呈现在视图中的“组”卡上。我认为将模型与视图分离是正确的方法

我写的简化输出:

var卡=[];
班级名单{
建造商(项目){
this.items=项目
}
}
类项目{
建造商(职位、id、职位){
this.title=标题;
this.id=id;
this.pos=pos;
}
}
变量列表=新列表([
新项目(“足球”),
新项目(“橄榄球”),
新项目(“板球”,1),
新项目(“曲棍球”,2),
新项目(“循环”),
新项目(“游泳”,1),
新项目(“摔跤”,2),
新项目(“潜水”,2),
新项目(“板球”,2),
新项目(“运行”)
]);
对于(var p=0;p1){
log('Card'+[c]+':'))
对于(var l=0;l'+[l]+'+[c][1][l].title);
}
}否则{
log('Card'+[c]+':');
console.log('-->'+[l]+''+[c].title);
}

}
你问的问题并不清楚。但是您的item类有
pos
字段,因此可以假设您将使用该字段存储它的位置。这似乎是合乎逻辑的,我会这样做,事实上,如果你从一个组中删除一个项目,而它不再有与之关联的项目,那么整理这个项目也是有意义的。谢谢Keith。我已经添加了一个示例,我在尝试方法1时遇到了一个问题-如何跟踪视图中分组为一张卡的卡的位置-您是否建议将组内的所有位置设置为相等?我想您需要两个位置,一个用于卡(组),一个用于项目。通过物品做任何事情都会让事情变得更难。您的组和项目也在单独的表中。当您重新订购一个组时,您只需要重新编号组,如果您重新订购一个项目,则只有组中的位置需要重新编号。如果在组之间移动项目,则会对2个受影响的组重新编号。你问什么问题还不清楚。但是您的item类有
pos
字段,因此可以假设您将使用该字段存储它的位置。这似乎是合乎逻辑的,我会这样做,事实上,如果你从一个组中删除一个项目,而它不再有与之关联的项目,那么整理这个项目也是有意义的。谢谢Keith。我已经添加了一个示例,我在尝试方法1时遇到了一个问题-如何跟踪视图中分组为一张卡的卡的位置-您是否建议将组内的所有位置设置为相等?我想您需要两个位置,一个用于卡(组),一个用于项目。通过物品做任何事情都会让事情变得更难。您的组和项目也在单独的表中。当您重新订购一个组时,您只需要重新编号组,如果您重新订购一个项目,则只有组中的位置需要重新编号。如果在组之间移动项目,则会对2个受影响的组重新编号。等