如何检查对象属性名称的长度

时间:2016-02-10 16:00:19

标签: javascript

我有一个如下的对象:

var car =
{ 
    "bmw":
    {
       "price": $100000  
    }  
};

我正在检查对象车中是否存在物业价格:

    var checkPropertyExistsInObject = function(obj, property) {
        var args = Array.prototype.slice.call(arguments, 1);
        for (var i = 0; i < args.length; i++) {
            if (!obj || !obj.hasOwnProperty(args[i])) {
                return false;
            }
            obj = obj[args[i]];
        }
        return true;
    }

if(checkPropertyExistsInObject(car,'bmw','price')){
             return true ;
else 
               return false;

我能够检查物品车中是否存在物业价格但是我想检查物业价格的长度(而不是价格的价值长度)。我无法确定如何做到这一点。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

您可以使用Object.keys迭代对象的键,如下所示:

var o = {bmw: {price: 1000}},
keys = Object.keys(o),
length = -1
for (var i = 0; i< keys.length; i++){
  var key = keys[i];
  if (key == 'bmw'){
    length = key.length; // access the length here;
    break;
  }
}

答案 1 :(得分:1)

Object.keys将该Object的所有键作为数组提供。检查钥匙的长度。

if(checkPropertyExistsInObject(car,'bmw','price')){
 // Length of the key
 return Object.keys(car['bmw'])[0].length

} else{
 return false;
}