首页 > 解决方案 > 使用用户指定的路径更改嵌套对象值

问题描述

问题

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

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] (如果它基于字符串)

标签: javascript

解决方案


推荐阅读