【发布时间】:2020-10-11 17:58:17
【问题描述】:
我在下面有这段代码,它获取 PC 的项目并返回报价、价格等。到目前为止,我可以添加或删除组件的唯一方法是直接修改数组。这是代码
class PriceCalc {
Motherboard = 520.99;
RAM = 250.4;
SSD = 500.8;
HDD = 400.66;
Case = 375.5;
Monitor = 600.75;
Keyboard = 100.99;
Mouse = 25.5;
constructor(Obj) {
this.parts = Obj;
this.cost = "$" + Obj.reduce((a, b) => a + this[b], 0).toFixed(2);
this.retail = "$" + (Obj.reduce((a, b) => a + this[b], 0) + Obj.reduce((a, b) => a + this[b], 0) * 1.75).toFixed(2);
this.quote = "Your quote is " + this.retail;
}
}
This is the key values
quote = new PriceCalc(["Motherboard", "RAM", "SSD", "HDD", "Case", "Monitor", "Keyboard", "Mouse"]);
console.log(quote.parts);
console.log(quote.cost);
console.log(quote.retail);
console.log(quote.quote);
我想实现的是如下所示的代码,我可以在类中添加并调用它来向引用添加新部分或删除现有部分。
function removePart(arr, part) {
return arr.filter(function (ele) {
return ele != part;
});
} var result = removePart(["Motherboard", "RAM", "SSD", "HDD", "Case", "Monitor", "Keyboard", "Mouse"], "Mouse");
console.log(result)
我想以一种可以调用 this.parts 的方式来实现它(如前面的代码中所述),或者调用一个将新部件推送到“部件”的新函数,或者调用一个删除某些部件的新函数已经在列表中。我希望我所描述的有意义
这是我的意思的一般示例模板,没有功能代码:
class quote {
constructor(/*...*/) {
this.parts = ....
}
add() {
//adds item
}
remove() {
//removes item
}
}
example = new quote(["part1", "part2"])
add(part3)
console.log(example) //returns ["part1" "part2" "part3"]
remove(part1)
console.log(example) //returns ["part2" "part3"]
【问题讨论】:
标签: javascript arrays string function class