Javascript三级组合

时间:2011-08-16 03:33:56

标签: javascript combinations

我正在尝试创建一个小工具,我可以在三个列表中创建组合。每个组合由一个辅音,一个niqqudot和一个teamim组成。我认为它可以通过简单的嵌套循环来解决,但是“document.write”行导致无限循环并且它似乎没有增加。第一个组合反复重复,但它永远不会进入下一个组合。如果有人可以查看代码并了解原因,我将不胜感激。谢谢!

function combine()
{
    // lists
    var consonants = ["א", "ב", "ג", "ד", "ה", "ו", "ז", "ח", "ט", "י", "ך", "כ", "ל", "ם", "מ", "ן", "נ", "ס", "ע", "ף", "פ", "ץ", "צ", "ק", "ר", "שׁ", "שׂ", "ת"];

    var niqqudot = ["", "ְ", "ֱ", "ֲ", "ֳ", "ִ", "ֵ", "ֶ", "ַ", "ָ", "ֹ", "ֻ", "ׇ", "ֿ", "ׄ", "ׅ", "ּ", "ֽ"];

    var teamim = ["", "֑", "֒", "֓", "֔", "֕", "֖", "֗", "֘", "֙", "֚", "֛", "֜", "֝", "֞", "֟", "֠", "֡", "֢", "֣", "֤", "֥", "֦", "֧", "֨", "֩", "֪", "֫", "֬", "֭", "֮", "֯"];

    // all combinations
    var combinations = "";

    // counter variables
    var i = 0;
    var j = 0;
    var k = 0;

    for (i = 0; i < consonants.length; i+1)
    {
        for (j = 0; j < niqqudot.length; j+1)
        {
            for (k = 0; k < teamim.length; k+1)
            {
                //combinations = combinations + consonants[i] + niqqudot[j] + teamim[k]+ "\r\n" ;
                document.write(consonants[i] + niqqudot[j] + teamim[k] + "\r\n");
            }
        }
    }
}

2 个答案:

答案 0 :(得分:2)

而不是:

i+1
j+1
k+1

做的:

i++
j++
k++

或:

i=i+1
j=j+1
k=k+1

答案 1 :(得分:2)

表达式

  

i + 1的   J + 1   K + 1

不要改变计数变量本身的值。他们只是评估,没有副作用。你需要说i + = 1,j + = 1,k + = 1。否则,解释器将如何知道将值赋给哪个变量?