我试图在每次调用时使用new_Color.next()
以数组顺序返回不同的颜色。但它总是返回blue
。我错了什么?
var new_Color = {
index: 0,
colors: ['blue', 'lightblue', 'darkblue'],
next: function() {
this.index = this.index + 1 < this.colors.length? 0: this.index + 1;
return this.colors[this.index];
}
};
提前致谢。
答案 0 :(得分:3)
您始终将index
重置为0
,因为(0) + 1
小于length
。翻转比较运算符,并将其设为length - 1
。
var new_Color = {
index: 0,
colors: ['blue', 'lightblue', 'darkblue'],
next: function() {
// v right here
this.index = this.index + 1 > this.colors.length - 1 ? 0 : this.index + 1;
return this.colors[this.index];
}
};
如果您想从blue
开始,请创建初始索引-1
。