Javascript的等价于Python的values()字典方法

在Python中,我可以使用.values()方法迭代字典的

例如:

 mydict = {'a': [3,5,6,43,3,6,3,], 'b': [87,65,3,45,7,8], 'c': [34,57,8,9,9,2],} values = mydict.values(): 

其中values包含:

 [ [3,5,6,43,3,6,3,], [87,65,3,45,7,8], [34,57,8,9,9,2], ] 

我怎样才能得到在Javascript字典的价值?

编辑

我原来打印的例子并不清楚我想做什么。 我只想要字典中的值的列表/数组。

我意识到我可以在列表中循环,创build一个新的值列表,但有没有更好的方法?

更新
我已经把Adnan的答复提上了,因为这是第一个答案。 如果有帮助,我只是发布更多的细节。

for..in循环就是你正在寻找的东西 –

 var dictionary = { id:'value', idNext: 'value 2' } for (var key in dictionary){ //key will be -> 'id' //dictionary[key] -> 'value' } 

要获取dictionary对象中的所有键,可以使用Object.keys(dictionary)
这意味着,你可以在数组循环中做同样的事情 –

 var keys = Object.keys(dictionary); keys.forEach(function(key){ console.log(key, dictionary[key]); }); 

当你想过滤密钥而不写丑陋的if..else循环时,这certificate特别方便。

 keys.filter(function(key){ //return dictionary[key] % 2 === 0; //return !key.match(/regex/) // and so on }); 

更新 – 要获取字典中的所有值,目前除了执行循环之外别无它法。 你如何做循环是一个select的问题,但。 我个人更喜欢

 var dictionary = { a: [1,2,3, 4], b:[5,6,7] } var values = Object.keys(dictionary).map(function(key){ return dictionary[key]; }); //will return [[1,2,3,4], [5,6,7]] 

使用jQuery,有一个使用$ .map()的漂亮的单行版本:

 var dict = {1: 2, 3: 4}; var values = $.map(dict, function(value, key) { return value }); var keys = $.map(dict, function(value, key) { return key }); 

不要试图说任何其他的答案是错误的,但如果你不反对使用外部库, underscore.js有一个方法正是这个:

 _.values({one: 1, two: 2, three: 3}); // returns [1, 2, 3] 

Object.values()可用于Firefox 47和Chrome 51,下面是其他浏览器的单行填充:

 Object.values = Object.values || function(o){return Object.keys(o).map(function(k){return o[k]})}; 

你可以使用for in

 mydict = {'a': [3,5,6,43,3,6,3,], 'b': [87,65,3,45,7,8], 'c': [34,57,8,9,9,2]}; for (var key in mydict){ alert(mydict[key]); } 

在JavaScript中,您使用for..in来循环对象的属性。

 var mydict = { 'a': [3,5,6,43,3,6,3,], 'b': [87,65,3,45,7,8], 'c': [34,57,8,9,9,2] }; for (var key in mydict) { console.log(mydict[key]); } 

在ES6中,目前在Firefox中默认支持,在Chrome中有标志,你可以这样做:

 a = {'a': [3,5,6,43,3,6,3,], 'b': [87,65,3,45,7,8], 'c': [34,57,8,9,9,2]} values = [a[x] for (x in a)]; 

values现在将是预期的数组。

这对于代码高尔夫也是有用的。 删除周围的空间将其削减到17个字符。

如果你只想得到使用下面的代码的值:

  for(keys in mydict){ var elements = mydict[keys]; console.log(elements); } 

您可以通过元素数组中的索引值获取单个元素。