for / while / do循环逻辑故障

时间:2015-09-17 08:01:18

标签: javascript arrays loops

这是我第一次在这里发帖,所以对我很轻松。我是编程的新手,并且一直试图为今天所有的/ while / do循环做好准备。我已经完成了大部分代码,但是,我正在努力完成一个部分。

程序从1-50计数并创建3组数组:2的倍数,3的倍数,以及2的非倍数的数组。我想要做的是创建一个具有2和amp的倍数的新数组; 3推到它,比较两个原始阵列。

我搜索了数组和比较/交叉点,但我找不到一个适合我的案例实现的解决方案。我能读到的最接近的答案仅适用于PHP。

这是我现在所处的地方,在试图弄清楚这么久之后:

var findCommon = function() {
    var g = 0;
    var w = 0;

    if (twoMultiples[g] !== threeMultiples[w]) {    
       do {
          g++;
       }

       while (g < w);    
       do {      
          w++;      
       }

       while (g > w);  
    } else {    
         bothMultiples.push(twoMultiples[g]);    
    }        
};

我也在想我需要一个for循环来开始这个功能,但是如果我这样做的话,我似乎无法弄清楚我应用的条件。

希望我能得到一些帮助!

2 个答案:

答案 0 :(得分:1)

试试这个:

        var arrMultipleOfTwo =[];
        var arrMultipleOfThree =[];
        var arrCommonOfTwoThree =[];
        var arrNonMultipleOfTwo = [];

        for(var i=0; i< 50; i++)
        {
            if((i%2)!=0){
                arrNonMultipleOfTwo.push(i);
            }
            if((i%2)==0){
                arrMultipleOfTwo.push(i);
            }
            if((i%3)==0){
                arrMultipleOfThree.push(i);
            }
            if((i%2)==0 || (i%3)==0){
                arrCommonOfTwoThree.push(i);
            }
        }

        console.log("--array of multiple of 2--"+arrMultipleOfTwo.toString());
        console.log("--array of multiple of 3--"+arrMultipleOfThree.toString());
        console.log("--array of multiple of 2 and 3 both--"+arrCommonOfTwoThree.toString());
        console.log("--array of non-multiple of 2--"+arrNonMultipleOfTwo.toString());

答案 1 :(得分:0)

var arrMultipleOfTwo =[];
            var arrMultipleOfThree =[];
            var arrCommonOfTwoThree =[];
            var arrNonMultipleOfTwo = [];
            {
                var i=0;//count
                do {
                    i++;
                    if((i%2)!=0){
                        arrNonMultipleOfTwo.push(i);
                    }
                    if((i%2)==0){
                        arrMultipleOfTwo.push(i);
                    }
                    if((i%3)==0){
                        arrMultipleOfThree.push(i);
                    }
                    if((i%2)==0 || (i%3)==0){
                        arrCommonOfTwoThree.push(i);
                    }
                }
                while (i < 50){
                    console.log("--array of multiple of 2--"+arrMultipleOfTwo.toString());
                    console.log("--array of multiple of 3--"+arrMultipleOfThree.toString());
                    console.log("--array of multiple of 2 and 3 both--"+arrCommonOfTwoThree.toString());
                    console.log("--array of non-multiple of 2--"+arrNonMultipleOfTwo.toString());

                }
            }