说我有以下字符串:
a = 5
b = 6
c = 7
我有两个文本框: 码 代码值
问题是,如何使用(a,b,c)生成唯一字符串,并将它们添加到文本框'代码'并将每个字符串相互相乘,并将它们添加到文本框的代码值'
例如,假设我生成了:
"cba"
然后将每个值相互相乘:
7 * 6 * 5 = 210.
即代码'文本框将等于" cba" 以及“代码值”'文本框将等于" 210"。 我怎么能实现这个目标?```
答案 0 :(得分:1)
使用对象进行设置,以便在需要时定义每个字母的值。然后尝试循环遍历每个字母并抓住它们的数值乘以。这是DEMO
var o = { // Define Letter Values
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
f: 6,
g: 7,
h: 8,
i: 9,
j: 10,
k: 11,
l: 12,
m: 13,
n: 14,
o: 15,
p: 16,
q: 17,
r: 18,
s: 19,
t: 20,
u: 21,
v: 22,
w: 23,
x: 24,
y: 25,
z: 26
};
$('input').on('keyup', function(){ // Set whatever event you want to trigger the function
var str = $(this).val(); // Grab the string value
var arr = str.split(''); // Split the string on every letter into an array
var total = 0;
$.each(arr, function(i, v){ // Loop through the letters
var letterIndex = o[v]; // Get the numerical value of the current letter
if(i === 0){ // If this is the first letter set the starting letter value
total = letterIndex;
} else { // Else multiply the current total by the letter's value
total = total * letterIndex;
}
});
$('#yourOtherTextarea').val(total); // Do whatever you want with the results
});
希望这有帮助!如果您有任何问题,请告诉我。
答案 1 :(得分:0)
如果您的变量总是一个字母长,则可以
if(code.length){
var result = eval(code[0]);
for(var i = 1; i < code.length; i++){
var temp = eval(eval('code[i]'));
result = eval('temp*result');
}
console.log(result);
}
中查看