我有一个JavaScript对象,看起来像这样.
var myObj = [ { "HolIDAY": { "Sun": "Date","Mon": "Date","Tue": "Date","Wed": "Date","Thr": "Date","Fri": "Date","Sat": "Date" } }]
我有一些HTML代码,看起来像这样
在HTML上,如果我对该字段进行任何更改,我已经存储了要修改的JavaScript变量.我编写了类似这样的JavaScript代码.
$(document).on('change','[data-event= change]',function(){ //get-variable-name where to bind data //Get object location insIDe the variable var sVarname = $(this).data('variable'); var sObjLoca = $(this).data('bind'); eval(sVarname+sObjLoca +' = ' $(this).val());});
有没有更好的方法来解决这个问题,目前我使用的是eval()我不想使用,因为很多元素都会有’change’事件而show’eval’会影响我的代码的性能.最佳答案
// inputvar myObj = [{ "HolIDAY": { "Sun": "Date","Sat": "Date" }}]// Functionfunction updateObject(object,newValue,path) { var stack = path.replace(/\]\[/g,'.').replace(/['"\[\]]/g,'').split('.'); while (stack.length > 1) { object = object[stack.shift()]; } object[stack.shift()] = newValue; return object;}// Outputconsole.log(updateObject(myObj,'test1',"[0]['HolIDAY']['Sat']"));console.log(updateObject(myObj,'test2',"[0]['HolIDAY']['Tue']"));// Can also set like belowconsole.log(updateObject(myObj,'otherway',"0.HolIDAY.Wed"));
总结 以上是内存溢出为你收集整理的JavaScript:通过从字符串中检索变量名来更新对象值全部内容,希望文章能够帮你解决JavaScript:通过从字符串中检索变量名来更新对象值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)