gpt4 book ai didi

javascript - 动态值存储在 javascript json 中

转载 作者:行者123 更新时间:2023-11-28 02:12:51 26 4
gpt4 key购买 nike

我有一个关于 Dijkstra 算法的项目,用 Canvas 绘制图形。我的 html 文件的 JavaScript 中有以下代码。这是 JavaScript 代码的一部分。

var graph = {};
var i = 0;
function ondblclick(e)
{
var cell = getpos(e)
canvasX = cell.x-10;
canvasY = cell.y-10;
graph = {i: {coord : [cell.x,cell.y]}};
var g_canvas = document.getElementById("canvas");
var context = g_canvas.getContext("2d");
var cat = new Image();
cat.src = "dot1.png";
cat.onload = function()
{
context.drawImage(cat,canvasX , canvasY);
}
}

i = i+1
function submit()
{
for (i = 0; i<= 5; i = i + 1)
alert(graph.i.coord);
}

这里我有一个 Canvas ,'ondblclick' 是用户双击 Canvas 时的函数。 Canvas 用于绘制节点和边。 'ondblclick' 用于绘制节点。

我的问题是将节点的坐标值以字典格式保存到“图形”中。它只接受最后一个值。我如何使用变量 I 和 cell.x,cell.y 值将所有值更新/附加/扩展到同一个字典??

最佳答案

你差一点就成功了。

var graph = [];
function ondblclick(e)
{
var cell = getpos(e)
canvasX = cell.x-10;
canvasY = cell.y-10;
graph.push({coord : [cell.x,cell.y]});
var g_canvas = document.getElementById("canvas");
var context = g_canvas.getContext("2d");
var cat = new Image();
cat.src = "dot1.png";
cat.onload = function()
{
context.drawImage(cat,canvasX , canvasY);
}
}

function submit()
{
for (i = 0; i<= 5; i = i + 1)
alert(graph[i].coord);
}

为了将数据放入graph,您需要将对象放入一个数组,然后遍历该数组。您的问题是您错误地使用了 i 变量,因此存储(和检索)您的坐标彼此重叠。

关于javascript - 动态值存储在 javascript json 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7187702/

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