Get the value of an object with an unknown single key in JS

狂风中的少年 提交于 2019-12-17 09:54:05

问题


How can I get the value of an object with an unknown single key?

Example:

var obj = {dbm: -45}

I want to get the -45 value without knowing its key.

I know that I can loop over the object keys (which is always one).

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

But I would like to know if there is a cleaner solution for this?


回答1:


Object.keys might be a solution:

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

The differences between for-in and Object.keys is that Object.keys returns all own key names and for-in can be used to iterate over all own and inherited key names of an object.

As James Brierley commented below you can assign an unknown property of an object in this fashion:

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

But you have to keep in mind that assigning a property that Object.keys returns key name in some order of might be error-prone.




回答2:


There's a new option now: Object.values. So if you know the object will have just one property:

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

Live Example:

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

If you need to know the name of the property as well, there's Object.entries and destructuring:

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

Live Example:

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);


来源:https://stackoverflow.com/questions/32208902/get-the-value-of-an-object-with-an-unknown-single-key-in-js

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!