【发布时间】:2020-10-18 16:53:39
【问题描述】:
考虑在这个 ES 类中创建一个值为“sideLength”和“sides”时间的数组的场景的这段代码,但我一直得到一个空数组!这是codepen link
class ShapeNew {
constructor(name, sides, sideLength) {
this.name = name;
this.sides = sides;
this.sideLength = sideLength;
}
tryArray() {
let sides_array = [];
for (let i = 0; i < this.sides; i++) {
sides_array = sides_array.push(this.sideLength);
}
return sides_array;
}
newPerimeter() {
let peri = this.tryArray();
console.log(peri.reduce((sum, accum) => sum + accum));
}
}
let new_square = new ShapeNew("square", 4, 5);
new_square.newPerimeter();
我要做的就是将 4 转换为 [5,5,5,5],我该怎么做?
在此先感谢您对此进行调查,非常感谢 :)
【问题讨论】:
-
sides_array.push(this.sideLength);而不是在每一轮都重新定义数组。 -
@Teemu 很简单,谢谢 :) 可以改进吗,例如,不使用局部变量而不是使用 args?
-
return new Array(4).fill(this.sideLength);可以在没有任何变量的情况下解决问题。 -
@abappy 方法
tryArray()的目的是什么?它只是返回一个边长一样多的新数组 -
@Teemu 是的,但你为什么要将项目数硬编码为 4?它应该是动态的
标签: javascript arrays class args