![](/img/trans.png)
[英]How do I store all my class values labeled "price" into an array so I can sort them?
[英]I have some instances of a class and I pushed them into an array. Can I loop through the array and update the price of all the array objects?
我有一个这样的父构造函数:
let list = [];
class Pictures {
constructor(price, title) {
this.price = price;
this.title = title;
list.push(this)
}
updatePrice(price_increase) {
this.price = this.price * price_increase / 100 + this.price
return this.price
}
}
我还有两个继承自 Pictures(Parent) class 的子类
class Photograph extends Pictures {
constructor(photographer, camera, aperture, contrast, price, title) {
super(price, title);
this.price = price;
this.title = this.title;
this.photographer = photographer;
this.camera = camera;
this.aperture = aperture;
this.contrast = contrast;
}
alterContrast(new_contrast) {
this.contrast = new_contrast;
}
toString() {
return `Photographer: ${this.photographer}, Camera: ${this.camera},
Aperture: ${this.aperture}, Contrast: ${this.contrast}`;
}
}
和:
class Painting extends Pictures {
constructor(artist, type, owner, title, price) {
super(price, title);
this.price = price;
this.title = title;
this.artist = artist;
this.type = type;
this.owner = owner;
}
printProvenance() {
}
toString() {
return `Artist: ${this.artist}, Type: ${this.type}, Owner: ${this.owner}`;
}
}
这些是类的实例
let photo_one = new Photograph('Kyle', 'Nikon', 32, 21, 30, 'Sunset')
let photo_two = new Photograph("Maya", "Sony XPR", 100, 23, 100.00, "Festival of Color");
我将所有实例推送到父构造函数中的“列表”数组。 是否可以循环遍历数组,使用Pictures
class中的updatePrice
方法更新所有对象的价格值?
是的,你可以,只需使用 .map、.forEach 或 for 循环
list.map((item) => {
item.updatePrice(1000)
})
但我可以建议将“列表”存储在 class 中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.