Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问对象的最简单方法&x27;谁拥有自己的财产?_Javascript_Object_Properties - Fatal编程技术网

Javascript 访问对象的最简单方法&x27;谁拥有自己的财产?

Javascript 访问对象的最简单方法&x27;谁拥有自己的财产?,javascript,object,properties,Javascript,Object,Properties,我有一个对象,它只有一个属性(自己的属性)。访问该属性值的最简单方法是什么 比如: value = obj[<firstProperty>]; 我事先不知道这房子的名字。我只知道直接在对象上只有一个属性。类似 var value = obj[ Object.keys(obj)[0] ]; 使用对象获取键。键和第一个(也是唯一一个)键 var value = obj[ Object.keys(obj)[0] ]; 使用对象获取密钥。密钥和使用[0]获取第一个(也是唯一一个)密钥应

我有一个对象,它只有一个属性(自己的属性)。访问该属性值的最简单方法是什么

比如:

value = obj[<firstProperty>];
我事先不知道这房子的名字。我只知道直接在对象上只有一个属性。

类似

var value = obj[ Object.keys(obj)[0] ];
使用
对象获取键。键
和第一个(也是唯一一个)键

var value = obj[ Object.keys(obj)[0] ];
使用
对象获取密钥。密钥
和使用
[0]

获取第一个(也是唯一一个)密钥应该有效

var keys = Object.keys(obj);
var value = obj[keys[0]];
我们可以把它缩短

var value = obj[Object.keys(obj)[0]];
这应该行得通

var keys = Object.keys(obj);
var value = obj[keys[0]];
我们可以把它缩短

var value = obj[Object.keys(obj)[0]];


修正数据的设计。具有未知属性名称的对象通常是沿线某个地方设计选择不佳的标志。具有未知属性名称的单个数据不属于对象。如果您只想存储一个未知的键和值,那么只需将它们放入一个数组
[“unknownKey”,value]
,您就可以直接访问它们。我敢打赌。向我们展示整个上下文,如果您所描述的是设计它的最佳方式,我会非常惊讶。是什么让这个案例与众不同?Javascript没有内置方式来实现这一点的原因是,有更好的方式来表达Javascript直接支持的数据结构。您甚至可以使用两个已知的属性名来存储两个未知值
{propname:“unknownKey”,value:val}
。我宁愿看到人们改进到一个没有这个问题的更好的设计,也不愿实施一个黑客来解决这个设计。但是,如果你不想改变设计,我想这是你的选择。@ChrisGciso-如果你真的想解释,你必须展示代码和实际的数据结构。文字本身很难理解。请修改数据的设计。具有未知属性名称的对象通常是沿线某个地方设计选择不佳的标志。具有未知属性名称的单个数据不属于对象。如果您只想存储一个未知的键和值,那么只需将它们放入一个数组
[“unknownKey”,value]
,您就可以直接访问它们。我敢打赌。向我们展示整个上下文,如果您所描述的是设计它的最佳方式,我会非常惊讶。是什么让这个案例与众不同?Javascript没有内置方式来实现这一点的原因是,有更好的方式来表达Javascript直接支持的数据结构。您甚至可以使用两个已知的属性名来存储两个未知值
{propname:“unknownKey”,value:val}
。我宁愿看到人们改进到一个没有这个问题的更好的设计,也不愿实施一个黑客来解决这个设计。但是,如果你不想改变设计,我想这是你的选择。@ChrisGciso-如果你真的想解释,你必须展示代码和实际的数据结构。单词本身很难理解。@SLaks-当然,为什么不呢,我只是喜欢
shift()
,这有关系吗?因为数组的变异是slower@SLaks-是的,我想对于reference@SLaks-当然,为什么不呢,我只是喜欢
shift()
,这有关系吗?因为数组的变异是slower@SLaks-是的,一个我认为不需要调用的函数reference@ChrisGciso-不,第二@阿迪内奥,哈哈哈:)事实上,我在发布这篇文章时没有看到你的答案。但是看起来你是第一个:)那很好,你去吧,哪一个被接受对我来说真的没什么大不了的,它只是看起来像一个奇怪的评论OP@ChrisGciso-不,第二@阿迪内奥,哈哈哈:)事实上,我在发布这篇文章时没有看到你的答案。但是看起来你是第一个:)那很好,你去吧,哪一个被接受对我来说真的没什么大不了的,它只是看起来像是一个奇怪的评论