代码之家  ›  专栏  ›  技术社区  ›  cubefox

使用用户指定的路径更改嵌套对象值[重复]

  •  0
  • cubefox  · 技术社区  · 5 年前

    问题

    我想构建一个函数,它接受一个嵌套对象值的路径,并将该值设置为“new value”

    const obj = {
      foo: {
        bar: 'baz'
      }
    }
    
    // api should look like
    changeObjKey(o => o.foo.bar)
    
    //or
    changeObjKey('foo.bar')
    
    /*
    * expected:
    obj = {
      foo: {
        bar: 'new value'
      }
    }
    */
    

    我试过的:

    像这样的(显然不起作用)

    function changeObjKey(cb){
      cb(obj) = 'new value'
    }
    

    我不想使用lodash之类的东西,我在寻找这个问题的最简单的解决方案。我也不想使用eval,api应该同时支持这两个foo。bar和foo[bar](如果基于字符串)

    0 回复  |  直到 5 年前