首页 > 解决方案 > JavaScript - 获取嵌套属性的父对象

问题描述

假设我有一个这样的嵌套对象:

let object = {
  another : {
    yet_another : {
      last_one : {
      some_property : [1,2,3]
      }
    }
  } 
}

我可以some_property这样访问:

object.another.yet_another.last_one.some_property;

假设我在一个变量中引用这个对象:

var x = object.another.yet_another.last_one.some_property;

some_property如果我只能访问该x变量,我怎么知道它的父对象是什么?在 JavaScript 中甚至有可能吗?

标签: javascriptobject

解决方案


根据您对答案的评论,您(实际)问题的解决方案应该是不要移动对象。在维护应用程序时,可变性可能非常昂贵(最终令人望而却步)。

只需创建新对象:


const firstObject = {
   prop1: 'some value',
   prop2: {
      prop3: 'some value',
      prop4: [1,2,3,4]
   }
}

// don't do
const secondObject = { }
secondObject.prop2.prop4 = firstObject.prop2.prop4

// instead do
const secondObject = { ... }
const newObject = {
  ...secondObject,
  prop2: {
   ...secondObject.prop2,
   prop4: firstObject.prop2.prop4
  }
}

您可能想研究 immutablejs。


推荐阅读