到目前为止,所有其他答案都是使用第三方 js 库。以下是对直接 js 解决方案的尝试。小提琴:http: //jsfiddle.net/rNfph/
var M = [
{text:'one', coord: [0,0]},
{text:'two', coord: [1,1]},
{text:'three', coord: [2,2]},
{text:'four', coord: [3,3]},
{text:'five', coord: [4,4]},
{text:'six', coord: [5,5]},
{text:'seven', coord: [6,6]},
{text:'eight', coord: [7,7]},
{text:'nine', coord: [8,8]},
{text:'ten', coord: [9,9]}
];
var search = function(str, x, y){
for(var i=0, len=M.length; i<len; i++){
if( M[i].text === str && M[i].coord[0] === x && M[i].coord[1] === y ){
return true;
}
}
return false;
}
console.log( search('three', 2, 2) );
console.log( search('three', 1, 2) );
现在,把这个和一粒盐一起吃。我不是复杂性方面的专家。很可能有更好的方法来做到这一点,因为这个实现可能需要迭代所有的值。
如果对此有限制,要求 'text' 的值是唯一的,那么您可以将其全部构建为对象(字典),而不是使用数组,并在根本不需要任何迭代的情况下进行检查。
看到这个小提琴:http: //jsfiddle.net/4mrsh/
var M = {
'one': [0,0],
'two': [1,1],
'three': [2,2],
'four': [3,3]
}
var search = function(key, x, y){
if( !M[key] || !(M[key][0] === x && M[key][1] === y) ) return false;
return true;
}
console.log( search('three',2,2) ); //true
console.log( search('three',1,2) ); //false
</p>