相当于 Python 的 values() 字典方法的 Javascript

标签 javascript

<分区>

在 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 中只获取字典的值?

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

我意识到我可以循环遍历列表并创建一个新的值列表,但是有更好的方法吗?

最佳答案

已更新
我赞成阿德南的回答,因为它是第一个。如果有帮助,我会发布更多详细信息。

for..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]]

关于相当于 Python 的 values() 字典方法的 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11734417/

相关文章:

javascript - 在javascript中迭代选择

javascript - electron.remote 在渲染过程中未定义

javascript - 使用相同功能的 Controller

javascript:用于打开和关闭定时颜色更改的按钮

javascript - 动态添加名称以数值开头的变量

javascript - TypeScript 的 tsc 编译器在调用 jQuery 和 Flot 代码时发出错误

javascript - 交互运行 cypress 命令

javascript - 图片从上传文件夹插入数据库

javascript - 如果 getJSON 请求在一秒内未完成,如何禁用该请求并转到下一个请求?

javascript - Mozilla 插件。 required(sdk/tabs).attach() 不起作用