如何通过传入x、y参数获取目标点的8个笛卡尔邻域坐标
笛卡尔邻域点功能实现修改方案
问题原因
当前代码输出格式不符合预期的核心原因是:map 回调返回的是 {x: 数值, y: 数值} 的对象数组,而预期输出是二维数组结构,同时函数没有显式返回计算结果。
修改后的代码
const neighbours = [ [-1, -1], [-1, 0], [-1, 1], [0, -1], [0, 1], [1, -1], [1, 0], [1, 1] ]; function getOutPut(x, y) { // 把返回的对象改为 [x+dx, y+dy] 数组结构 const results = neighbours.map(([dx, dy]) => [x + dx, y + dy]); console.log("results is", results); // 增加return语句方便外部使用计算结果 return results; } // 测试验证 // 对应第一个示例,中心坐标为(2,2) getOutPut(2, 2); // 对应第二个示例,中心坐标为(-17,7) getOutPut(-17,7);
输出验证
- 调用
getOutPut(2, 2)输出:[[1,1],[1,2],[1,3],[2,1],[2,3],[3,1],[3,2],[3,3]],和第一个预期示例一致 - 调用
getOutPut(-17, 7)输出:[[-18,6],[-18,7],[-18,8],[-17,6],[-17,8],[-16,6],[-16,7],[-16,8]],和第二个预期示例一致
内容的提问来源于stack exchange,提问作者ganesh kaspate
相关产品推荐
相关产品推荐

