相当于Python's values()字典方法
Javascript equivalent of Python's values() dictionary method
在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中只获取字典的值?
我最初的打印示例不清楚我想做什么。我只想要字典中的值的列表/数组。
我意识到我可以循环浏览列表并创建一个新的值列表,但有更好的方法吗?
更新
我对阿德南的回答投了赞成票,因为这是第一个。如果有帮助的话,我只是发布更多的细节。
用于。。in loop就是你想要的-
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
循环的情况下过滤密钥时,这证明是特别方便的。
keys.filter(function(key){
//return dictionary[key] % 2 === 0;
//return !key.match(/regex/)
// and so on
});
更新-要获取字典中的所有值,目前没有其他方法,只能执行循环。不过,如何循环是一个选择问题。就我个人而言,我更喜欢
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]]
Object.values()在Firefox 47和Chrome 51中可用,这里有一个适用于其他浏览器的单行polyfill:
Object.values = Object.values || function(o){return Object.keys(o).map(function(k){return o[k]})};
使用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]
您可以使用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]);
}
在ES6中,您可以这样做:
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
现在将是预期的数组。
这对于编码高尔夫也很有用。删除for
周围的空格可将其缩减为17个字符。
在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]);
}
如果您只想获得值,请使用以下代码:
for(keys in mydict){
var elements = mydict[keys];
console.log(elements);
}
您可以通过元素数组中的索引值来获取Individual元素。
相关文章:
- javascript结合了数组和字典
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- 使用Objective-C的JavaScript注入方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- toBoolean方法类似于toString
- 如何在单击复选框后调用控制器方法
- 相当于Python's values()字典方法
- 有没有办法在应用程序脚本中使用JavaScript为对象创建方法字典
- 对从字典 JavaScript 对象检索的对象调用方法
- jQuery扩展方法,将select元素序列化为字典
- Javascript语法字典(标准函数、对象、方法和关键字)
- 更好的方法来检查字典上的所有值是否为真