我有一个JavaScript对象

var obj = {
   key1: 'value1',
   key2: 'value2',
   key3: 'value3',
   key4: 'value4'
}

我怎么能得到这个对象中的键的长度和列表?


当前回答

对于以逗号分隔的字符串列出JSON对象的键,尝试以下方法:

function listKeys(jObj){
    var keyString = '';
    for(var k in jObj){
        keyString+=(','+k);
    }
    return keyString.slice(1);
}



/* listKeys({'a' : 'foo', 'b' : 'foo', 'c' : 'foo'}) -> 'a,b,c' */

其他回答

js使得转换非常简洁:

var keys = _.map(x, function(v, k) { return k; });

编辑:我忽略了你也可以这样做:

var keys = _.keys(x);

Var obj = { key1:“value1”, key2: value2, key3:“value3”, key4:“value4” } var keys = Object.keys(obj); Console.log ('obj包含' +键。长度+ '键:'+键);

现在大多数主流浏览器都支持它。

var keys = new Array();
for(var key in obj)
{
   keys[keys.length] = key;
}

var keyLength = keys.length;

要从对象中访问任何值,可以使用obj[key];

使用ES6, 你可以使用forEach遍历一个对象的键。 要获得所有的键,您可以使用Object。返回对象中的所有键

Object.keys(obj).forEach(function(keyValue, index, map) { 
  console.log(keyValue); 
});

上面代码片段的简写为,它只接受一个参数

Object.keys(obj).forEach(function(keyValue) { 
  console.log(keyValue); 
});

使用切片、应用和连接方法。

var print = Array.prototype.slice.apply( obj );
alert('length='+print.length+' list'+print.join());