[重構] 合併、減少判斷式層數

This commit is contained in:
wengYuting 2022-04-07 16:53:24 +08:00
parent 05f7cab78b
commit bfb20fbad4

View File

@ -1,5 +1,5 @@
class Item { class Item {
constructor(name, sellIn, quality){ constructor(name, sellIn, quality) {
this.name = name; this.name = name;
this.sellIn = sellIn; this.sellIn = sellIn;
this.quality = quality; this.quality = quality;
@ -7,52 +7,64 @@ class Item {
} }
class Shop { class Shop {
constructor(items=[]){ constructor(items = []) {
this.items = items; this.items = items;
} }
/*
反轉負向判定!
中斷程式碼簡化判定
整合判定sellIn 變動提到前面拉齊比對基準
各商品行為抽成單獨的 function
updateQuality => updateItem
*/
updateQuality() { updateQuality() {
for (let i = 0; i < this.items.length; i++) { for (let i = 0; i < this.items.length; i++) {
if (this.items[i].name != 'Aged Brie' && this.items[i].name != 'Backstage passes to a TAFKAL80ETC concert') { if (
if (this.items[i].quality > 0) { this.items[i].name === "Aged Brie" ||
if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') { this.items[i].name === "Backstage passes to a TAFKAL80ETC concert"
this.items[i].quality = this.items[i].quality - 1; ) {
}
}
} else {
if (this.items[i].quality < 50) { if (this.items[i].quality < 50) {
this.items[i].quality = this.items[i].quality + 1; this.items[i].quality = this.items[i].quality + 1;
if (this.items[i].name == 'Backstage passes to a TAFKAL80ETC concert') { if (
if (this.items[i].sellIn < 11) { this.items[i].name == "Backstage passes to a TAFKAL80ETC concert"
if (this.items[i].quality < 50) { ) {
this.items[i].quality = this.items[i].quality + 1; if (this.items[i].sellIn < 11 && this.items[i].quality < 50) {
} this.items[i].quality = this.items[i].quality + 1;
} }
if (this.items[i].sellIn < 6) { if (this.items[i].sellIn < 6 && this.items[i].quality < 50) {
if (this.items[i].quality < 50) { this.items[i].quality = this.items[i].quality + 1;
this.items[i].quality = this.items[i].quality + 1;
}
} }
} }
} }
} else if (
this.items[i].quality > 0 &&
this.items[i].name != "Sulfuras, Hand of Ragnaros"
) {
this.items[i].quality = this.items[i].quality - 1;
} }
if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') {
if (this.items[i].name != "Sulfuras, Hand of Ragnaros") {
this.items[i].sellIn = this.items[i].sellIn - 1; this.items[i].sellIn = this.items[i].sellIn - 1;
} }
if (this.items[i].sellIn < 0) { if (this.items[i].sellIn < 0) {
if (this.items[i].name != 'Aged Brie') { if (this.items[i].name != "Aged Brie") {
if (this.items[i].name != 'Backstage passes to a TAFKAL80ETC concert') { if (
if (this.items[i].quality > 0) { this.items[i].name != "Backstage passes to a TAFKAL80ETC concert"
if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') { ) {
this.items[i].quality = this.items[i].quality - 1; if (
} this.items[i].quality > 0 &&
this.items[i].name != "Sulfuras, Hand of Ragnaros"
) {
this.items[i].quality = this.items[i].quality - 1;
} }
} else { } else {
this.items[i].quality = this.items[i].quality - this.items[i].quality; this.items[i].quality =
} this.items[i].quality - this.items[i].quality;
} else {
if (this.items[i].quality < 50) {
this.items[i].quality = this.items[i].quality + 1;
} }
} else if (this.items[i].quality < 50) {
this.items[i].quality = this.items[i].quality + 1;
} }
} }
} }
@ -63,5 +75,5 @@ class Shop {
module.exports = { module.exports = {
Item, Item,
Shop Shop,
} };