【发布时间】:2021-07-08 04:46:12
【问题描述】:
这是将函数(画布绘图)添加到 sameTree 数组的代码
let TreesI = 5;
let sameTree = [];
let randomValueX = mathR(-20, 20);
let randomValueY = mathR(-20, 20);
for (let i = 0; i < TreesI; i++) {
randomValueX = mathR(-20, 20);
randomValueY = mathR(-20, 20);
sameTree[TreesI] = Tree7(randomValueX, randomValueY)
}
但它什么也没做,
console.log 输出给出了这个
[5: 未定义] (6) = $2
这是 Tree7 的示例
function Tree7(startWidth, startHeight) {
ctx.save();
let treeObj = {
translateValues: {
startWidth: startWidth,
startHeight: startHeight,
endWidth: -startWidth,
endHeight: -startHeight
},
scaleR: mathR(0.8, 1)
}
ctx.translate(treeObj.translateValues.startWidth, treeObj.translateValues.startHeight);
ctx.scale(treeObj.scaleR,treeObj.scaleR);
//ctx.strokeStyle = 'rgb(0, 100, 1)';
ctx.strokeStyle = 'black';
ctx.globalAlpha = 0.5;
ctx.lineWidth = 0.2;
var reduce = 2;
//Tree drawing sample under
ctx.beginPath();
ctx.moveTo(0,0);
ctx.lineTo(mathR(0,10),0);
ctx.stroke();
// Tree drawing sample above
ctx.translate(treeObj.translateValues.endWidth, treeObj.translateValues.endHeight);
ctx.restore();
}
现在得到一些答案后,我意识到我需要停止更新随机值ctx.lineTo(mathR(0,10),0);。我目前的代码只保留坐标。请帮忙。
【问题讨论】:
-
sameTree[i]而不是sameTree[TreesI]? -
如果你发布
Tree7函数的样子就好了。 -
我看不到来自
Tree7函数的任何返回值,该函数领先于undefined -
如果您希望函数调用的结果存储在数组中,您的函数应该返回它们。由于您的函数当前没有返回语句,因此完成后它总是“返回未定义”。这就是为什么您在数组中看到未定义的原因
-
您不能只返回多个值,例如
return (value1, value2, ...)。一个函数只能返回一个值。因此,您可以将您希望返回的所有值放入一个对象或数组中,然后返回那个。
标签: javascript arrays function for-loop indexing