【问题标题】:How to access javascript key/value pairs in an array如何访问数组中的javascript键/值对
【发布时间】:2013-09-07 00:19:12
【问题描述】:

我有以下 javascript 数组:

var groupedDataSet1 = [{year: "0-1k", value1: Math.floor(Math.random()), value2: Math.floor(Math.random()), value3: Math.floor(Math.random())},
            {year: "1-2k", value1: Math.floor(Math.random()), value2: Math.floor(Math.random()), value3: Math.floor(Math.random())},
            {year: "2-3k", value1: Math.floor(Math.random()), value2: Math.floor(Math.random()), value3: Math.floor(Math.random())},
            {year: "3-4k", value1: Math.floor(Math.random()), value2: Math.floor(Math.random()), value3: Math.floor(Math.random())},
            {year: "4-5k", value1: Math.floor(Math.random()), value2: Math.floor(Math.random()), value3: Math.floor(Math.random())}];

我想以编程方式了解每个条目中有多少键/值对。

有没有办法知道 groupedDataSet 包含键 year、value1、value2 和 value3 而另一个 javascript 数组可能只包含 year、value1 和 value2?

执行 groupedDataSet[0].length 不起作用。

谢谢。

【问题讨论】:

标签: javascript arrays


【解决方案1】:
Object.keys(groupedDataSet[0]).length

应该可以为您找到您想要的东西。它返回一个包含对象中实例键的数组。

【讨论】:

  • 将密钥保存在变量中后,如何访问该值?例如 key = Object.keys(groupedDataSet[0])。如何使用 key 获取存储在 groupedDataSet[0]. 中的实际值?
  • 想通了。 Object.keys(groupedDataSet[0])[key] 将返回我的值。谢谢!
【解决方案2】:

如果列表中的对象可能有不同的键集,那么您必须检查每个对象以收集所有键。你可以这样做

var keys_memo = {};
groupedDataSet1.forEach(function (item) {
    for (var i in item) {
        keys_memo[i] = 1;
    }
});
var keys = Object.keys(keys_memo);

console.log(keys)
>>>["year", "value1", "value2", "value3"] 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多