javascript - 使用字符串搜索在多维数组中查找坐标

标签 javascript arrays stringify

尝试在没有循环的情况下给出这个问题的替代方案!仅使用 indexOf 和一些整数数学

Get coordinates of an element in multidimentional array in Javascript

下面的代码看起来很有前途但失败了。

谁有更好的数学技能想要解决它?

var letterVariations = [ 
        [' ','0','1','2','3','4','5','6','7','8','9'],
        ['A','a','B','b','C','c','D','d','E','e',';'],
        ['Â','â','F','f','G','g','H','h','Ê','ê',':'],
        ['À','à','I','i','J','j','K','k','È','è','.'],
        ['L','l','Î','î','M','m','N','n','É','é','?'],
        ['O','o','Ï','ï','P','p','Q','q','R','r','!'],
        ['Ô','ô','S','s','T','t','U','u','V','v','“'],
        ['W','w','X','x','Y','y','Ù','ù','Z','z','”'],
        ['@','&','#','[','(','/',')',']','+','=','-'],
    ];

var string = JSON.stringify(letterVariations);
var pos = string.indexOf("u")
console.log(Math.floor((pos/10)%9),pos%10)

// fails, how to fix?
pos = string.indexOf("M")
console.log(Math.floor((pos/10)%9),pos%10)

最佳答案

function findPos(array, symbol) {
  const string = array.toString().replace(/,/g, '');
  const pos = string.indexOf(symbol)

  const d = (array[0] || []).length

  const x = pos % d;
  const y = Math.floor(pos / d)

  return { x, y }
}

const array = [
  [' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
  ['A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'E', 'e', ';'],
  ['Â', 'â', 'F', 'f', 'G', 'g', 'H', 'h', 'Ê', 'ê', ':'],
  ['À', 'à', 'I', 'i', 'J', 'j', 'K', 'k', 'È', 'è', '.'],
  ['L', 'l', 'Î', 'î', 'M', 'm', 'N', 'n', 'É', 'é', '?'],
  ['O', 'o', 'Ï', 'ï', 'P', 'p', 'Q', 'q', 'R', 'r', '!'],
  ['Ô', 'ô', 'S', 's', 'T', 't', 'U', 'u', 'V', 'v', '“'],
  ['W', 'w', 'X', 'x', 'Y', 'y', 'Ù', 'ù', 'Z', 'z', '”'],
  ['@', '&', '#', '[', '(', '/', ')', ']', '+', '=', '-'],
];


console.log(findPos(array,' ')) //=> [0, 0]
console.log(findPos(array,'M')) //=> [4, 4]
console.log(findPos(array,'u')) //=> [6, 7]
console.log(findPos(array,'-')) //=> [8, 10]

关于javascript - 使用字符串搜索在多维数组中查找坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55145932/

相关文章:

javascript - 根据表单的选择显示/隐藏标记不做任何事情

javascript - 在混合应用程序中找不到 AngularJS

python - python pandas 中列的数组范围

javascript - 字符串化 JavaScript 对象

javascript - JSON.stringify 似乎无法按预期工作

javascript - 单击链接时如何停止 Javascript、Jquery 运行

javascript - 如何实现淡入的悬停效果

c# - 返回一个常量字符串数组

java - 以编程方式添加相对布局