gpt4 book ai didi

javascript - 这个JS函数如何使用参数?

转载 作者:行者123 更新时间:2023-11-30 12:24:57 26 4
gpt4 key购买 nike

我有以下功能,它打印出几个像素字母形状的正方形。现在你会注意到我只有字母 a 和 b 在那里。最后我将添加所有字符,但首先我需要知道如何编写此函数,以便我可以将参数传递给它,它会打印出形状,看起来像您作为参数传递给函数的字母。这是现在的功能:

function make_letter() {
var c = document.getElementById("myCanvas");
var context = c.getContext("2d");
var w = parseInt(getComputedStyle(c).width);
var h = parseInt(getComputedStyle(c).height);
var full = Math.floor(h / 16);
var unit = full - 0.75;
var inv = {
a: [[0, 2], [1, 1], [1, 3], [2, 0], [2, 1], [2, 2], [2, 3], [2, 4], [3, 0], [3, 4], [4, 0], [4, 4]],
b: [[0, 0], [0, 1], [0, 2], [0, 3], [1, 0], [1, 4], [2, 0], [2, 1], [2, 2], [2, 3], [3, 0], [3,4], [4,0], [4,1], [4,2], [4,3]]
};
for (i = 0; i <= inv.b.length; i++) {
var x = inv.b[i][1] * full;
var y = inv.b[i][0] * full;
context.beginPath();
context.rect(x, y, unit, unit);
context.fillStyle = 'black';
context.fill();
}
}

我想用 make_letter('a'); 调用函数并让它打印一个与您传递的字母相匹配的字母,但在函数的某些点上,我不确定如何正确合并参数变量。就像这一行:for (i = 0; i <= inv.b.length; i++) {假设“param”是传递给函数的参数变量的名称,我该如何告诉它使用 inv.param.length?

这是原始函数的 fiddle :http://jsfiddle.net/po74m2ut/

最佳答案

function make_letter(letter) {
...
for (i = 0; i <= inv[letter].length; i++) {
var x = inv[letter][i][1] * full;
var y = inv[letter][i][0] * full;
context.beginPath();
context.rect(x, y, unit, unit);
context.fillStyle = 'black';
context.fill();
}
}

在我上一个回答中,我几乎解释了这个案例——我想我应该解释一下!这是您真正想要使用 object[property] 形式的引用而不是 object.property 的时候...当属性的实际名称存储在一个变量。

编写该循环的另一种方法是:

inv[letter].forEach(function(coord) {
context.beginPath();
context.rect(coord[1] * full, coord[0] * full, unit, unit);
context.fillStyle = 'black';
context.fill();
});

关于javascript - 这个JS函数如何使用参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29738649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com