如何在jquery中生成一组字符串并将每个字符串与另一个字符串相乘

时间:2015-05-15 17:18:49

标签: jquery

说我有以下字符串:

a = 5
b = 6
c = 7

我有两个文本框: 码 代码值

问题是,如何使用(a,b,c)生成唯一字符串,并将它们添加到文本框'代码'并将每个字符串相互相乘,并将它们添加到文本框的代码值'

例如,假设我生成了:

"cba"

然后将每个值相互相乘:

7 * 6 * 5 = 210.

即代码'文本框将等于" cba" 以及“代码值”'文本框将等于" 210"。 我怎么能实现这个目标?```

2 个答案:

答案 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);
}

action

中查看