Javascript - 确定数组中的值是否为正,负(使用开关)

时间:2012-06-28 19:29:49

标签: javascript

好的,所以我正在尝试编写一些代码来确定静态数组中的值是正数,负数还是等于零。

因此填充了数组,并且我将使用switch语句来查看值和输出文本,具体取决于它是高于,低于还是等于零。

这是迄今为止我一直在做的一些代码。

请保留与开关使用相关的答案!提前致谢。

注意:我在教自己JS,所以我是新手。到目前为止,这是我的代码:

// JavaScript Document

var numbers=new Array();
numbers[0]="1";       
numbers[1]="2";
numbers[2]="3";
numbers[3]="-1";       
numbers[4]="-2";
numbers[5]="-3";
numbers[6]="0";



switch (numbers) {
    case "positive":
        if (numbers>0) 
        {alert("DERP")};
    break;
    case "negative":
        if (numbers<0) 
        {alert("NO DERP")};
    break;
   case "zero":
        if (numbers==0) 
        {alert("STILL DERP")};
    break;
}

2 个答案:

答案 0 :(得分:3)

您需要遍历数组,并检查每个元素。 switch不是正确的工具,它不会做你想要的。 switch可能是if/else的一种方式,但它们只检查相等,不小于/大于。

var str = 'a'

switch(str){
    case 'a':
        alert(1);
        break;
    case 'b':
        alert(2);
        break;
    default:
        alert(0);
        break;
}

此警告1

如果str的值与其中一个case语句匹配(您无法在<中使用>case),则代码会跑。否则defualt将运行。它们不是“标签”,因此检查case内的值是没有意义的。

您需要循环,然后只使用if/else

for(var i=0, len=numbers.length; i<len; i++){
    var num = numbers[i];

    if(num > 0) alert('DERP');
    else if(num < 0) alert("NO DERP");
    else alert("STILL DERP");
}

答案 1 :(得分:1)

您比较字符串和数字。 数组中的数字被&#34;&#34;包围。 :这个make string。你应该删除这些&#34;&#34;在你的数组中或添加&#34;&#34;在你的开关。

相关问题