我有一个JavaScript对象
var obj = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
key4: 'value4'
}
我怎么能得到这个对象中的键的长度和列表?
我有一个JavaScript对象
var obj = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
key4: 'value4'
}
我怎么能得到这个对象中的键的长度和列表?
当前回答
如果你决定使用Underscore.js,你最好这样做
var obj = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
key4: 'value4'
}
var keys = [];
_.each( obj, function( val, key ) {
keys.push(key);
});
console.log(keys.lenth, keys);
其他回答
obj = {'a':'c','b':'d'}
你可以试试:
[index for (index in obj)]
这将返回:
['a','b']
来获取键的列表 或
[obj[index] for (index in obj)]
来得到这些值
如果你只想要特定于特定对象的键,而不是任何派生的原型属性:
function getKeys(obj) {
var r = []
for (var k in obj) {
if (!obj.hasOwnProperty(k))
continue
r.push(k)
}
return r
}
e.g:
var keys = getKeys({'eggs': null, 'spam': true})
var length = keys.length // access the `length` property as usual for arrays
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 print = Array.prototype.slice.apply( obj );
alert('length='+print.length+' list'+print.join());