Javascript 使用字符串中的键编辑多维数组值
我有一些js代码的问题,我希望你能帮助我 我有一个这样的数组:Javascript 使用字符串中的键编辑多维数组值,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我有一些js代码的问题,我希望你能帮助我 我有一个这样的数组: var object = { one : { 'first' : 'value1', 'second' : 'value2' 'third' : { 'first' : 'value1', 'second' : 'value2' } } ... } 和一个字符串,如: var string = '
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:您可以通过调整其中的函数来实现这一点,以便在最后进行赋值。这是一个相对较小的变化。。。去争取吧你能行!