Javascript 相邻td之间的相互作用
问题 如何比较两个相邻单元格的坐标 帮助我的文档 我已经看到了这些问题,它们帮助了我,但它们与我的情况不同: 代码 我有一个动态生成的表Javascript 相邻td之间的相互作用,javascript,jquery,arrays,html-table,Javascript,Jquery,Arrays,Html Table,问题 如何比较两个相邻单元格的坐标 帮助我的文档 我已经看到了这些问题,它们帮助了我,但它们与我的情况不同: 代码 我有一个动态生成的表 function tableGenerate(Mytable){ for(var i = 0; i < myTable.length; i++) { var innerArrayLength = myTable[i].length; for(var j = 0; j<inner
function tableGenerate(Mytable){
for(var i = 0; i < myTable.length; i++) {
var innerArrayLength = myTable[i].length;
for(var j = 0; j<innerArrayLength; j++){
if(myTable[i][j] === 0){
myTable[i][j]="x";
}else{
myTable[i][j]="y";
};
};
$("#aTable").append("<tr><td>"+ myTable[i].join('</td><td>') + "</td></tr>")
}
}
代码的最后部分是这样工作的:
- 我将selectedTd的位置保存在两个不同的变量中
- 我创建了2d数组
,其中包含与所选的方向
方向相关的近单元格坐标
- 在第一个
,比较两个单元格。如果其中一个坐标相同,则输入最后一个中输入如果
If
功能比较(selectedTd){
设tdRow=selectedTd.actualPosition.row;
设tdCell=selectedTd.actualPosition.cell;
让方向=[
[tdRow-1,tdCell],
[tdRow+1,tdCell],
[tdRow,tdCell+1],
[tdRow,tdCell-1]
];//这些是mainTd附近的TD,我需要与其他TD进行比较
设tdToCompare=[];
如果(selectedTd.name=='interestedValue'){
tdToCompare=[otherMainTd.actualPosition.row,otherMainTd.actualPosition.cell];
for(设i=0;i更新:
再次阅读你的代码,我想我已经解决了问题。您正在比较数组实例,而不是它们的实际值。请参见此简单示例来说明此问题:
var a=[1];
VarB=[1];
console.log(a==b)代码>您正在混合==和==。记住,他们不会这么做。使用==除非您还需要比较变量的类型。如果你感兴趣的话,你会提到一个,但你指的是哪一个并不清楚。有三个,我想这是第一个,但最好指出哪一个是你的代码足够复杂,我建议你在上面或类似的服务上创建一个工作演示。@JaviMollá-总是建议使用==
。哦,对不起。我完全错了。谢谢你指点out@Legeo只是一个建议/评论。创建表时,将td
内容分配给变量。然后,在for的末尾,将内容添加到DOM中。运行这一行$(“#aTable”).append(“+myTable[i].join(“)+”)
每一行都会对浏览器产生很大影响,因为您在每次迭代中都会更改DOM。对于问题的质量,我很抱歉,我已经尽力解释了。我能问一下最难理解的部分是什么吗?所以我可以试着改变一下。如果你打开代码笔,你会看到一个随机生成的带有地图的小游戏。现在,我需要了解一个角色何时靠近另一个角色,以开始一些基本的交互。我认为使用td的坐标是最好的方法。主要问题是我无法比较存储在数组中的值,我不明白为什么。更新了我的答案,我认为我发现了问题。我更好地阅读了你的答案,明白了。谢谢你的解释,很清楚。我现在有更多的时间,所以我再次更新了我的答案。我重写了你的比较方法,并解释了为什么我会做不同的事情。我看过你的比赛,它看起来不错,做得很好!我确实认为你的JS可以从一些更好的结构中受益。至于是什么让你的问题难以回答,对我来说,这是因为缺乏示例输入。首先是地图生成方法,然后是一些数据结构,最后是需要帮助的方法。大量信息与问题关系不大。在许多情况下,一个好的问题都有示例输入、代码和预期输出。这是我在堆栈溢出中得到的最好答案。你的解释非常详尽,我真的非常感谢你为此付出的所有努力。我还需要一个小时给你赏金。谢谢你的解释,它们对我意义重大。
var mainTd = {
name: 'interestedValue',
actualPosition:{
row: 5,
cell: 4
}
};
var otherMainTd = {
actualPosition:{
row: 2,
cell: 3
}
};