我有一个数组:
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基础知识。 我之前忘记提到这一点,现在我看到了所有评论中的仇恨。
“这是最好的方式吗?”我应该在我的问题中加上这个。
我在评论中看到,切换案例不是一个好选择。那么什么是替代呢?
答案 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)
如果计算正数,零和负数使用低于逻辑,只需在控制台内粘贴即可获得结果。
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;