我想从输入中获取一个字符串,将其转换为数组,然后使用提供的值将变量替换为可变值,以根据值创建一个数组。
$(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)
}
});
});
答案 0 :(得分:0)
有人提到使用对象来存储这些值,我肯定会考虑该建议。同时,您可以在window
对象上设置属性以使其成为全局变量,即:
const setGlobal = (name, value) => window[name] = value;
setGlobal('myVariable', 1000);
console.log(myVariable);
对于您的用例,您需要将const
声明移到全局范围,以便可以从函数内部进行设置,而需要使用var
。然后我们只需将targetArray
中window[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>
。