【问题标题】:how to skip every 3rd number from loop如何从循环中跳过每第三个数字
【发布时间】:2018-06-17 03:34:54
【问题描述】:

我想从逻辑中跳过每三个数字,我很累,但我没有找到正确的方法。输出应该是这样的:0,1,3,4,6,7,9,10,12...

我试过这个,但它不能完全工作。 **

for (var item = 0; item < $scope.gridImportData.data.length; item++)
{
  $scope.gridImportData[item] + (($scope.gridImportData[item] - 1) / 3)
}

**

【问题讨论】:

  • 为什么不只是item+=3
  • 尝试使用mod,在java中它是%,你需要检查if(item%3!=0){//print item...}什么时候你可能想要排除0,所以它将是if(item%3!=0 || item==0)
  • 使用模运算符 (%) 您可以检查您的索引是否可被 3 整除。当 3 的模返回零时,您可以跳过您的逻辑(这当然意味着您的值应该是 1 -based 而不是 0-based)
  • “跳过”是什么意思?从输出中跳过(为什么不显示您的 HTML?)?复制到另一个数组时跳过?当前代码看起来毫无意义。无论如何要根据索引跳过元素,您只需要在 JS 中使用 if 语句,或在标记中使用 ng-if 指令

标签: javascript angularjs loops


【解决方案1】:

试试这个

    angular.module("a",[]).controller("ac",function($scope){
    $scope.querylist =[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
    $scope.newValue=[];
    for (var item = 0; item < $scope.querylist.length; item++){
    if($scope.querylist[item] % 3 == 0 && $scope.querylist[item] !=0)    {
        continue;
       }
      $scope.newValue.push($scope.querylist[item]);
    }

    });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="a" ng-controller="ac">
    <table>
    <tr ng-repeat="x in newValue">
       <td>{{x}}</td>
    </tr> 
    </table>
    </div>

【讨论】:

    【解决方案2】:

    怎么样:

    for (var item = 0; item < 100; item++) {
      // skip every 3rd
      if ((item + 1) % 3 == 0) continue
    
      console.log(item)
    }
    

    【讨论】:

      【解决方案3】:
      #include <stdio.h>
      #include <stdlib.h>
      
      int main()
      {
      int a[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};
      int n = sizeof(a)/sizeof(int);
      int i, j = 2, count = 0;
      printf("The are %d elements in the array\n", n);
      for (i = 2; i<n ; i++)
      {
      if ((i)%3 != 2)
      {
      a[j] = a[i];
      j++;
      }
      else
      {
      count++;
      }
      }
      printf("Number of elements removed are : %d\n", count);
      printf("Resultant array is\n");
      for (i = 0; i < n - count; i++)
      {
      printf("%d ", a[i]);
      }
      printf("\n");
      
      getch();
      }
      

      【讨论】:

      • 我已经发送了逻辑,您可以检查它是否可以正常工作。
      • 你在哪里复制的?他在angularjs中询问解决方案。不是 C++。
      • 伙计,这是基本登录,您可以使用 Angular 的语法。
      【解决方案4】:

      这是您的循环,它跳过所有 3 的乘法。

      for (var i=0; i<25; i % 3 === 2 ? i = i + 2 : i++)
         console.log(i)
      

      结果

      0 1 2 4 5 7 8 10 11 13 14 16 17 19 20 22 23 
      

      【讨论】:

        【解决方案5】:

        在余数运算符中使用 if 条件

        for (var item = 0; item < $scope.gridImportData.data.length; item++)
        {
          if(! (item % 3 === 2)){
            $scope.gridImportData[item] + (($scope.gridImportData[item] - 1) / 3)
          }
        }
        

        示例演示

        var arr = [0,1,2,3,4,5,6,7,8,9,10,12]
        
        for(let i=0; i<= arr.length-1; i++){
          if(! (i%3 === 2)){
             console.log(arr[i])
          }
        }

        【讨论】:

          【解决方案6】:

          假设你正在喂一个数组;您可以使用filterindexOf% 来获得您想要的结果;

          const nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
          
          let filteredNums = nums.filter((num) => (nums.indexOf(num)+1)% 3 != 0);
          
          console.log(filteredNums)

          【讨论】:

            【解决方案7】:

            怎么样,

            int n = 100;
            
            for(int i = 0; i<n; i++)
            {
                printf("%d, ",i + (i >> 1));
            }
            

            【讨论】:

            • 问题包含标签javascriptangularjs 你的问题似乎不是JavaScript
            • 走逻辑。把它放在java语法中。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2010-09-27
            • 1970-01-01
            • 2014-01-08
            • 1970-01-01
            • 2018-12-11
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多