如何通过c或Javascript获取号码的位置。 它是一个有序数字数组,如
1 2
3 4
5 6
如何使函数得到数字3为2-1,而6为3-2
非常感谢!
答案 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>");