【问题标题】:Get the value of an object with an unknown single key in JSJS中获取具有未知单键的对象的值
【发布时间】:2015-11-19 10:43:28
【问题描述】:

如何获取具有未知单键的对象的值?

例子:

var obj = {dbm: -45}

我想在不知道其键的情况下获得 -45 值。

我知道我可以遍历对象键(总是一个)。

for (var key in objects) {
    var value = objects[key];
}

但我想知道是否有更清洁的解决方案?

【问题讨论】:

    标签: javascript javascript-objects


    【解决方案1】:

    Object.keys 可能是一个解决方案:

    Object.keys({ dbm: -45}); // ["dbm"]
    

    for-in 和 Object.keys 的区别在于 Object.keys 返回所有自己的键名,而 for-in 可用于遍历对象的所有自己的和继承的键名。

    正如 James Brierley 在下面评论的那样,您可以以这种方式分配对象的未知属性:

    var obj = { dbm:-45 };
    var unkownKey = Object.keys(obj)[0];
    obj[unkownKey] = 52;
    

    但您必须记住,分配 Object.keys 以某种顺序返回键名的属性可能容易出错。

    【讨论】:

    • obj[Object.keys(obj)[0]]
    【解决方案2】:

    现在有一个新选项:Object.values。因此,如果您知道该对象将只有一个属性:

    const array = Object.values(obj)[0];
    

    现场示例:

    const json = '{"EXAMPLE": [ "example1","example2","example3","example4" ]}';
    const obj = JSON.parse(json);
    const array = Object.values(obj)[0];
    console.log(array);

    如果您还需要知道属性的名称,可以使用Object.entries 和解构:

    const [name, array] = Object.entries(obj)[0];
    

    现场示例:

    const json = '{"EXAMPLE": [ "example1","example2","example3","example4" ]}';
    const obj = JSON.parse(json);
    const [name, array] = Object.entries(obj)[0];
    console.log(name);
    console.log(array);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-11
      • 2016-07-26
      • 1970-01-01
      • 2016-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多