使用普通javascript计算数组中的负,正和零元素

时间:2017-09-01 05:13:51

标签: javascript html

我有一个数组:

 var ar1=[];
 var ar=[-1,-2,-3,0,0,5,12,0,-10];

我正在尝试将数字分类为“零”,“负数”和“正数”并计算它们。

这是我的代码:

function counter(ar)  { 
   var num,array1=[0,0,0];
   for (i=0;i<ar.length;i++)    {
      switch (ar[i]<0)      {
         case true : array1[0]++;break;
         case false : 
                        if (ar[i]=0) array1[1]++;
                        else array1[2]++;
                        break;
         default : break;
      }
   }
  return(array1);
}

完整代码:

<script type="text/javascript">
function counter(ar)  { 
   var num,array1=[0,0,0];
   for (i=0;i<ar.length;i++)    {
      switch (ar[i]<0)      {
         case true : array1[0]++;break;
         case false : 
                         if (ar[i]=0) array1[1]++;
                        else array1[2]++;
                        break;
         default : break;
      }
   }
  return(array1);
}
</script></head>
<body>
<script type="text/javascript">
var ar1=[];
 var ar=[-1,-2,-3,0,0,5,12,0,-10];
 ar1=counter(ar);
 alert("No of Negative, Zero and Positive Elements are : "+ar1);
</script>

逻辑似乎对我来说是正确的,但不知怎的,它不起作用。有人可以帮帮我吗。

更新

我是编码新手,只是学习javascript基础知识。 我之前忘记提到这一点,现在我看到了所有评论中的仇恨。

“这是最好的方式吗?”我应该在我的问题中加上这个。

我在评论中看到,切换案例不是一个好选择。那么什么是替代呢?

3 个答案:

答案 0 :(得分:3)

要比较您需要使用Vue.component('a1-component', require('./A1Component.vue')); Vue.component('a2-component', require('./A2Component.vue'));

===用于为变量赋值。

请勿在案件中使用=。您只需要switch

if else

如果要分别获取所有值,可以使用对象解构:

var ar = [-1, -2, -3, 0, 0, 5, 12, 0, -10];

function counter(ar) {
  var counter = [0, 0, 0];
  ar.forEach(function(a) {
    if (a < 0)
      counter[0]++;
    else if (a > 0)
      counter[2]++;
    else
      counter[1]++;
  });
  return counter;
}

var result = counter(ar);
alert("No of Negative, Zero and Positive Elements are : " + result);

答案 1 :(得分:0)

答案是if (ar[i] == 0) array1[1]++;

答案 2 :(得分:0)

如果计算正数,零和负数使用低于逻辑,只需在控制台内粘贴即可获得结果。

&#13;
&#13;
var ar = [-1, -2, -3, 0, 0, 5, 12, 0, -10];
var zeroCount = 0,
  posCount = 0,
  negativeCount = 0;
ar.forEach((item) => {
  if (item === 0) {
    zeroCount++
  } else if (item < 0) {
    negativeCount++
  } else if (item > 0) {
    posCount++
  }
})

console.log("ZeroCount:: " + zeroCount);
console.log("PositiveCount :: " + posCount);
console.log("NegativeCount:: " + negativeCount);
&#13;
&#13;
&#13;