我有一个JavaScript对象

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

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


当前回答

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

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

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

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

其他回答

obj = {'a':'c','b':'d'}

你可以试试:

[index for (index in obj)] 

这将返回:

['a','b']

来获取键的列表 或

[obj[index] for (index in obj)]

来得到这些值

在JavaScript中,对象是一个独立的实体,具有属性和类型。

以数组形式从Object中获取值: object .values(obj) // obj是你使用的对象名称 结果——>“value1”、“value2”,“value3”,“value4”)

以数组形式从Object中获取键: object .keys(obj) // obj是你使用的对象名称 Result -> ["key1", "key2", "key3", "key4"]

由于两个函数都返回数组,您可以使用length属性获取键或值的长度。例如- Object.values(obj)。length或Object.keys(obj).length

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

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

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

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

Var obj = { key1:“value1”, key2: value2, key3:“value3”, key4:“value4” }; Var键= []; 对于(var k in obj) keys.push(k); Console.log ("total " +键。长度+“键”:+键);

使用种()……这是正确的方法。

完整的文档可以在MDN网站上找到,链接如下:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys