4

我需要知道一个 JavaScript 对象是否包含某个变量。

EG:检查“地图”是否包含“这里”

var map = {
    '10': '0',
    '20': '0',
    '30': 'here',
    },
4

2 回答 2

4

你必须遍历对象来测试它:

var chk = false;
for(var key in map){
    if(map[key] == "here"){
        chk = true;
        break;
    }
}
alert(chk?"Yup":"Nah");

你也可以把它放在Object原型中:

Object.prototype.ifExist = function(txt){
    var chk = false;
    for(var key in this){
        if(this[key] == txt){
            chk = true;
            break;
        }
    }
    return chk;
}

//map.ifExist("here");
//return true

演示:http: //jsfiddle.net/DerekL/yWnYy/

于 2012-12-09T06:01:35.480 回答
1

for..in您必须使用以下语法迭代对象:

function in_object(value, object) {
    for (var key in map) {
        if (map[key] == value) {
            return true;
        }
    }

    return false;
}

这是一个例子:

> in_object('heres', map)
false
> in_object('here', map)
true
于 2012-12-09T06:02:22.383 回答