function FontMenu(font_number){
// Font family
var fontFamily = ["Arial", "Georgia", "Crushed", "Trochut", "Anton", "Monoton"];
var counter = font_number;
this.font = fontFamily;
this.counter = counter;
}
FontMenu.prototype._Left = function (){
this.counter--;
alert(this.font[this.counter]);
}
FontMenu.prototype._Right = function (){
this.counter++;
alert(this.font[this.counter]);
}
我有左键和右键,当用户点击它会检查数组,让我们说font_number为0,fontfamily长度为6,当我按下右键,this.counter ++,当它超过fontfamily时它不会回到0,与this.counter相同 - 当它变为0时我希望它转到最后一个fontFamily长度。
对不起,如果我的问题很清楚。感谢帮助,简单,好像多于6回到0,如果低于0那么回到最后的长度。
但是有没有使用if语句的简单方法?
答案 0 :(得分:2)
是的 - 你可以使用模运算。
增量很简单:向计数器添加一个,然后将结果的其余部分取模为列表的长度。
FontMenu.prototype._Right = function() {
this.counter = (this.counter + 1) % this.font.length;
};
除了从计数器中减去一个之外,递减几乎相同。您还需要添加列表的长度以确保左操作数是非负的。以与以前一样的方式将结果作为列表长度的模数。
FontMenu.prototype._Left = function() {
this.counter = (this.counter + this.font.length - 1) % this.font.length;
};
一些资源: