Javascript 高效的JS组到类别转换功能?
我有九个小组:Javascript 高效的JS组到类别转换功能?,javascript,function,Javascript,Function,我有九个小组: newFencepost oldBoard bigTree largeRock smallPebble Toughbulder diamondRing 翡翠项链 opalBracelet 和三类 木头,石头和宝石 每个组都属于三个类别中的一个,但类别名称未附加到组对象。因此,类别知道哪些组属于它们,但这些组不知道它们属于哪些类别 我需要编写一个函数groupToCat(),该函数将group作为其第一个参数,并返回与其关联的类别 我可以做到: if (group == ne
newFencepost
oldBoard
bigTree
largeRock
smallPebble
Toughbulder
diamondRing
翡翠项链
opalBracelet
和三类
木头
,石头
和宝石
每个组都属于三个类别中的一个,但类别名称未附加到组对象。因此,类别知道哪些组属于它们,但这些组不知道它们属于哪些类别 我需要编写一个函数
groupToCat()
,该函数将group
作为其第一个参数,并返回与其关联的类别
我可以做到:
if (group == newFencepost || group == oldBoard || group == bigTree ){
var category = wood;
};
但这将是丑陋的、混乱的,并且意味着每次我添加一个新的类别或组时都会有更多的工作
作为一名新程序员,我宁愿从正确的方式做简单的事情开始。在引入新内容时,编写此函数而不必更改它的正确方法是什么?我建议维护一个
类别列表。所以你可以做一些类似的事情:
// Assuming all groups were pushed to categories like :
// wood = wood || {groups: []};
// wood.groups.push(bigTree);
// wood.groups.push(newFencepost);
// etc
function groupToCat(group) {
for(var i = 0; i < categories.length; i++) {
var category = categories[i];
// .indexOf on an array will return
// the index of the passed in object
// in the array. If it's -1,
// that means it's not in the array.
if(category.groups.indexOf(group) !== -1) {
return category;
}
}
}
//假设所有组都被推到如下类别:
//wood=wood | |{组:[]};
//木。群。推(大树);
//木。群。推(新篱笆柱);
//等
功能组TOCAT(组){
对于(变量i=0;i
是否每个类别都有组的列表?因此,您可以执行类似于的操作,如果(wood.groups.indexOf(group)!=-1)返回wood代码>?是的,类别知道属于它们的组。该信息可以以解决方案所需的任何方式附加。您能否更新此信息,解释其工作原理?我对索引(组)!=-1
part这有帮助吗?我还添加了一条关于如何构造类别
对象的注释。我现在正在研究push()
方法,以了解您的解释,因此您将组推到category.groups对象中,该对象的索引为0或更大。。每个循环尝试不同的类别。如果组的索引不是-1,则它是该类别的成员。好吧说得通,这有什么用<代码>木材=木材| |{组:[]}代码>