Javascript 获取对象内部的数据';谁的目标?

Javascript 获取对象内部的数据';谁的目标?,javascript,jquery,Javascript,Jquery,我在一个对象中有一个对象,对象的名称可能会改变,我如何在不按名称引用对象的情况下获得对象对象内部的值 Object {medium-editor-1453741508068-0: Object} medium-editor-1453741508068-0: Object value: "this is what i want" 这就得到了上面的结果: this.mediumEditor.editor.serialize(); 我需要像这样的东西: this.mediumEdi

我在一个对象中有一个对象,对象的名称可能会改变,我如何在不按名称引用对象的情况下获得对象对象内部的值

Object {medium-editor-1453741508068-0: Object}
    medium-editor-1453741508068-0: Object
    value: "this is what i want"
这就得到了上面的结果:

this.mediumEditor.editor.serialize();
我需要像这样的东西:

this.mediumEditor.editor.serialize().childObject.value;

如果顶级对象仅包含一个对象,则只需使用
object.keys(topLevelObject)
即可获得“对象的对象”名称。如下所示:

var objectsObjectName = Object.keys(topLevelObject)[0];
var value = topLevelObject[objectsObjectName].value;
如果对象嵌套的级别更高,或者对象的值的名称(哇,这很难理解)也不可预测,则可以递归使用相同的逻辑

您还可以迭代顶级对象:

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

即使您只有一个嵌套对象,也可以这样做,尽管编写循环时知道它只循环一次可能会很奇怪。

这取决于-您是如何获得此对象的?是什么造成的?你对它有多大的控制权?您能否确定它是什么类型的对象(并可能创建您自己的
对象原型,您可以使用它来查找特定数据)。我的脑子里在想,
getter
setter
,这可能是理想的。我必须提到的是,您的示例对象对于您试图实现的目标非常不清楚。我无法更改该对象,它来自媒体编辑器。它将始终命名为
media editor-?它可以有任何名称,尽管medium editor-*很可能您可以使用
Object.keys()
来获取一个键数组。然后,您可以执行类似于
Object.keys(obj).forEach(function(){})的操作。
Wowzers,太快了!我发布后,立即看到错误并编辑。。。但你还是抓住了我。现在你已经删除了你的评论,我看起来像是在自言自语。为了安全起见,当然如果我们想递归使用它,你应该在
For
循环中使用
topLevelObject.hasOwnProperty(key)
,以避免任何意外的和继承的部分碍事。@somethinghere:几乎可以肯定,是的,虽然不一定。对于intance,在某些嵌套对象是从其他对象继承的对象的情况下(在这种情况下,
hasOwnProperty
将返回false),情况就不是这样了。这里的“顶级对象”可能是某个嵌入式文本编辑器的内部对象,我们正试图从其内部挖掘其价值。在这种情况下,编辑器可以从其他一些对象继承。你永远不知道。每天都有新的见解:)JavaScript总是让你猜谜!