检查JavaScript对象是否包含X?

时间:2012-12-09 05:58:56

标签: javascript

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

EG: 检查'map'是否包含'here'

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

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分: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