Javascript 使用字符串中的键编辑多维数组值

Javascript 使用字符串中的键编辑多维数组值,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我有一些js代码的问题,我希望你能帮助我 我有一个这样的数组: var object = { one : { 'first' : 'value1', 'second' : 'value2' 'third' : { 'first' : 'value1', 'second' : 'value2' } } ... } 和一个字符串,如: var string = '

我有一些js代码的问题,我希望你能帮助我

我有一个这样的数组:

var object = {
    one : {
        'first' : 'value1',
        'second' : 'value2'
        'third' : {
            'first' : 'value1',
            'second' : 'value2'
        }
    }
    ...
}
和一个字符串,如:

var string = 'one.third.second'
所以,我的问题是-如何使用字符串中的键编辑对象的值


谢谢

嗯,我确实找不到我以前的答案,也许是我的想象

您可以使用此答案中的技巧,但记住最后一个对象,并在到达最后一个关键点时执行赋值,而不是获取值:

Object.setByString=函数(o、s、值){
s=s.replace(/\[(\w+)\]/g,.$1');//将索引转换为属性
s=s.replace(/^\./,“”);//去掉前导点
var a=s.分割('.');
对于(变量i=0,n=a.length-1;i


@T.J.Crowder,虽然链接的答案显示了如何在给定字符串的情况下获取对象属性,但它们没有显示如何更改值。坦率地说,如果没有
eval
:)@AmmarCSE:Good point,我想不出一种方法。我最近也回答了这个问题,让我找到它…@ammarces:Gah,我找不到它。这将是我最后2-3周的答案中的某个地方,但我没有时间搜索。(您不需要
eval
。您几乎从来没有这样做过…@AmmarCSE:您可以通过调整其中的函数来实现这一点,以便在最后进行赋值。这是一个相对较小的变化。。。去争取吧你能行!