如何获取矩阵中数字的位置?

时间:2016-04-27 11:23:16

标签: javascript c algorithm

如何通过c或Javascript获取号码的位置。 它是一个有序数字数组,如

1 2
3 4
5 6

如何使函数得到数字3为2-1,而6为3-2

非常感谢!

4 个答案:

答案 0 :(得分:0)

你可以在javascript中做这样的事情

var data = [
  [1, 2],
  [3, 4],
  [5, 6]
];

var getPos = function(elem, data) {
  var result = '';
  data.forEach(function(value, index) {
    value.forEach(function(v, i) {
      if (v == elem) result += (index + 1) + '-' + (i + 1);
    });
  });
  return result;
}

console.log(getPos(5, data));

答案 1 :(得分:0)

在C中你可以编写一个实现以下伪代码的函数:

//...
for(i=0 ; i<ARRAY_SIZE ; i++)
    {
    if(array[i] == desired_num) 
    return i;
    else
    i++;
    } 
return -1; // return error if desired_num not found
//...

答案 2 :(得分:0)

如果它是一个连续有序的二维数组,你可以做这样的事情来得到索引。 (根据您的示例注意+1

int x = floor(number/2) +1:
int y = (number+1)%2 +1;

如果你正在使用数组,你应该能够跳转正确的索引,而不需要像我看到的其他答案那样循环。

array[x][y]

答案 3 :(得分:0)

你可能会做这样的事情

var table = (new Array (10)).fill(new Array(10).fill("")).map( e=> e.map( f => ~~(Math.random()*1000))),
  results = [];
function findInTable(t, q){
  var finds = {x:[],y:[]};
  t.forEach( (a, i) => {j = a.indexOf(q); ~j && (finds.x.push(j+1), finds.y.push(i+1))});
  return finds;
}
results = findInTable(table, 777);

document.write("<pre>" + table[0] + "\n" + table[1] + "\n" + table[2] + "\n" + table[3] + "\n" + table[4] + "\n" + table[5] + "\n" + table[6] + "\n" + table[7] + "\n" + table[8] + "\n" + table[9] + "\n" +"</pre>");
document.write("<pre> Searched for " + 777+ " and found at:\n" + JSON.stringify(results, null, 4) + "</pre>");