我想找到一种方法,只允许某些对象进入在类名中有某个单词的数组中。或者至少找到做这样的事情的最佳方式。这是细节。我有一个存储所有放入购物车的对象的数组。
function addProductToArray (e:MouseEvent):void{
currMC = (e.target as MovieClip);
myCart.itemsInCart.push(currMC);
trace(myCart.itemsInCart);}
例如,如果我删除了一个 [object BreadGrain] 和一个 [object PastaGrain]。
trace(myCart.itemsInCart);// would trace [object BreadGrain],[object PastaGrain]
.
很简单,没有问题。但是,如果我只想允许 2 个类名中带有“Grain”的对象进入数组,该怎么办?我想这样做,以便用户只能将每种食物中的 2 种放入“购物车”。食物的类型是谷物、水果、蔬菜、肉类等,我已经将食物的类型附加到类名的末尾,希望这样我可以用它来检测它是什么类型的食物并阻止它被添加超出限制并显示错误。即“您已经有 2 个谷物产品”。
我希望这是有道理的。无论如何,我发现这在一定程度上效果很好:
if (currMC is BreadGrain) {
myCart.itemsInCart.push(currMC);
} else {
// error message code here
}
但是我有几个产品,我不想为它们都写一个 if/else 或 switch 语句。我希望通过类似于以下内容动态地执行此操作:
//this is an example of the logic
if (currMC classNameContainsTheWord "Grain" AND myCart.itemsInCart DoesNotContainMoreThan 2 Grain Objects) {
myCart.itemsInCart.push(currMC); } else { // 这里是错误信息代码 }
我难住了。即使只是一句“伙计,你做错了”也会有所帮助。谢谢。