从输入中获取值并将其用作javascript中的变量名称以获取预先确定的变量值

时间:2020-06-21 20:57:29

标签: javascript jquery

我想从输入中获取一个字符串,将其转换为数组,然后使用提供的值将变量替换为可变值,以根据值创建一个数组。

$(document).ready(function() {
  const a= 1,j=1,s=1;
  const b=2,k=2,t=2;
  const c=3,l=3,u=3;
  const d=4,m=4,v=4;
  const e=5,n=5,w=5;
  const f=6, o=6,x=6;
  const g=7,p=7,y=7;
  const h=8,q=8,z=8;
  const i=9, r=9;
  let obj = {};
  let target = "";
  let targetArray = [];
  let valArray = [];

  $("#target").keyup(function () {
    target = $("#target").val();
    for(let i = 0; i < target.length; i++) {
      targetArray = Array.from(target);
      val = targetArray[i];
      //statement to get string from above to convert to values provided at top
      console.log(valArray)
    }
  });
});

1 个答案:

答案 0 :(得分:0)

有人提到使用对象来存储这些值,我肯定会考虑该建议。同时,您可以在window对象上设置属性以使其成为全局变量,即:

const setGlobal = (name, value) => window[name] = value;

setGlobal('myVariable', 1000);
console.log(myVariable);

对于您的用例,您需要将const声明移到全局范围,以便可以从函数内部进行设置,而需要使用var。然后我们只需将targetArraywindow[x]的{​​{1}}映射到x

targetArray
var a= 1,j=1,s=1;
var b=2,k=2,t=2;
var c=3,l=3,u=3;
var d=4,m=4,v=4;
var e=5,n=5,w=5;
var f=6, o=6,x=6;
var g=7,p=7,y=7;
var h=8,q=8,z=8;
var i=9, r=9;

$(document).ready(function() {
  $("#target").keyup(function() {
  
    let target = $("#target").val(),
        targetArray = Array.from(target),
        valArray = targetArray.map(x => window[x]);
        
    console.log(valArray);
    
  });
});

请注意,如果您希望能够处理输入字段中的大写值,则需要使用<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <textarea id="target"></textarea>