javascript - 遍历数组以创建新类 (JS)
问题描述
我正在使用带有 JavaScript 的类,但不确定如何继续前进。我认为我下面的内容成功地执行了 for 循环,但我被困在如何 console.log 新创建的资源上。
我的目标是使用 Bootstrap 或 Foundation 为他们创建卡片,然后将它们附加到身体上。
我的代码如下:
var ResourcesArray = ["Blacksmith", "Farm", "Gold", "Herb", "Quarry", "Vineyard", "Wood"]
class Resource {
constructor(name, amount) {
this.name = name;
this.amount = amount
}
add() {
this.amount + 1
}
subtract() {
this.amount - 1
}
trade() {
console.log(this.name)
}
}
function createResourceCards() {
for (i = 0; i < ResourcesArray.length; i++) {
new Resource(ResourcesArray[i], 0)
}
}
谢谢您的帮助!
解决方案
该表达式返回刚刚创建new Foo()
的实例。只需将其存储在变量中:
function createResourceCards() {
for (i = 0; i < ResourcesArray.length; i++) {
let res = new Resource(ResourcesArray[i], 0);
console.log(res);
}
}
但是,您可能希望该函数返回新的资源卡。为此,您应该按照问题评论中的建议创建一个数组并将它们全部推送到数组中。然而,也有一个捷径可以做到这一点:Array#map()
,如下所示。
const ResourcesArray = ["Blacksmith", "Farm", "Gold", "Herb", "Quarry", "Vineyard", "Wood"]
class Resource {
constructor(name, amount) {
this.name = name;
this.amount = amount
}
add() {
this.amount + 1
}
subtract() {
this.amount - 1
}
trade() {
console.log(this.name)
}
}
function createResourceCards() {
return ResourcesArray.map(res => new Resource(res, 0));
}
let resources = createResourceCards();
console.log(resources);
推荐阅读
- android - 处理MVP模式时如何使用Retrofit call.enqueue()方法(正确方式)
- c# - 如何将 Xml 字符串反序列化为具有私有设置器属性的对象?
- c# - 如何使用结构将字母从每个字符串移动到新字符串?
- android - 在另一个活动中使用 URI 获取位图
- c - 为什么 K&R“逆波兰计算器”中的“NUMBER”在 gdb 中显示为 void?
- rdf - 使用属性来描述类
- cypher - libcypher-parser 是否支持 REGEX 运算符?
- .htaccess - 如何将文件夹及其子文件夹重定向到子域
- auth0 - Auth0 允许在 Azure 中托管的应用的 Web 源
- c++ - 为什么当您发送指向指针的指针时遍历会永久更改链接列表但仅指针不会