You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用纯JavaScript检查网格指定坐标位置是否存在元素?

纯JavaScript实现网格元素检查功能

完全没问题,咱们用纯JavaScript就能轻松搞定这个需求!核心思路很简单:先把所有被元素覆盖的网格坐标存起来,然后写个函数校验传入的坐标是否在这个集合里就行。

实现步骤

  • 第一步:维护一个存储已占用坐标的数据集,用Set会比数组更高效,因为查找操作的时间复杂度是O(1)
  • 第二步:编写接收row和column的函数,把传入的坐标转换成统一格式的字符串(比如"行号,列号"),再检查这个字符串是否存在于集合中

代码示例

// 先定义所有被元素覆盖的网格坐标(示例里(3,4)有元素,(1,3)没有)
const occupiedPositions = new Set([
  "3,4",
  // 后续可以继续添加其他有元素的坐标,比如"2,2"、"1,5"这类
]);

// 实现检查函数
function isPositionOccupied(row, column) {
  // 把坐标转成统一格式的字符串,方便比对
  const positionKey = `${row},${column}`;
  // 检查是否在已占用集合中
  return occupiedPositions.has(positionKey);
}

// 测试验证
console.log(isPositionOccupied(1, 3)); // 输出 false
console.log(isPositionOccupied(3, 4)); // 输出 true

扩展优化

如果你的网格元素位置是动态变化的(比如元素会移动、新增或删除),可以加几个辅助函数来维护数据集:

// 添加一个被占用的坐标
function addOccupiedPosition(row, column) {
  const positionKey = `${row},${column}`;
  occupiedPositions.add(positionKey);
}

// 删除一个被占用的坐标
function removeOccupiedPosition(row, column) {
  const positionKey = `${row},${column}`;
  occupiedPositions.delete(positionKey);
}

要是担心传入的坐标参数类型不对(比如是字符串而非数字),还可以在函数里做个类型转换:

function isPositionOccupied(row, column) {
  const positionKey = `${Number(row)},${Number(column)}`;
  return occupiedPositions.has(positionKey);
}

这样不管是静态还是动态的网格元素位置,都能轻松处理啦!

内容的提问来源于stack exchange,提问作者Gergő Horváth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:00:47