JavaScript:通过从字符串中检索变量名来更新对象值

JavaScript:通过从字符串中检索变量名来更新对象值,第1张

概述我有一个JavaScript对象,看起来像这样.var myObj = [ { 'HOLIDAY': { 'Sun': 'Date', 'Mon': 'Date', 'Tue': 'Date', 'Wed': 'Date', 'Thr': 'Date', 'Fri': 'Da

我有一个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:通过从字符串中检索变量名来更新对象值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1119018.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)