【发布时间】:2021-05-06 03:39:14
【问题描述】:
我正在尝试做一个简单的 Backpack 类来使用 vanilla javascript 查看对象。这样做时,我遇到了一个障碍,因为我无法创建正确的 AddItem 方法或让我的 decrementItem 方法工作。
我的代码如下:
class Backpack {
constructor(name) {
this.name = name;
this.items = {};
}
name() {
return `My backpack's name is ${this.name}`;
}
addItem(i, value) {
return this.items[i] ? (this.items[i] += value) : (this.items[i] = 1);
}
decrementItem(i) {
if (this.items[i]) {
}
return this.items[i] ? this.items[i]-- : (this.items[i] = 0);
}
}
let newBackpack = new Backpack("Bacon");
newBackpack.addItem("pencil", 3);
newBackpack.addItem("book");
newBackpack.addItem("pen");
newBackpack.addItem("paper");
console.log(newBackpack.items);
我也很好奇如何向我的 decrementItem 方法添加验证以检查值是否不会变为负数,因为这会导致一些问题。
【问题讨论】:
-
您需要将项目存储在对象中吗?或者你可以使用一个简单的数组?
-
我正在尝试为练习面试问题做对象
-
当你将值 3 传递给 addItem 时,你的意图是什么?您是否关心索引 3 处是否已经有一个项目?您是否关心索引中低于 3 的项目? (为什么不检查下一个可用索引,然后在该索引处添加项目,而不是尝试手动跟踪索引?)
标签: javascript nan object-notation