如何在Javascript中使用三元运算符来确定某些内容是偶数还是奇数?

如何在Javascript中使用三元运算符来确定某些内容是偶数还是奇数?,javascript,arrays,ternary,Javascript,Arrays,Ternary,所以我需要弄清楚如何将“p”标记存储到数组中,然后使用三元运算符确定“p”标记是偶数还是奇数 function paragraph() { list = new Array(); var list = document.getElementsByTagName("p"); var even = list[0]; var odd = list[1]; even.style.backgroundColor = "#CCFFFF"; odd.style.b

所以我需要弄清楚如何将“p”标记存储到数组中,然后使用三元运算符确定“p”标记是偶数还是奇数

function paragraph()
{

   list = new Array();

   var list = document.getElementsByTagName("p"); 

   var even = list[0];
   var odd = list[1];

   even.style.backgroundColor = "#CCFFFF";
   odd.style.backgroundColor = "#CCFFCC";
} //end of paragraph()
  • 我的数组存储“p”标记是否正确
  • 我如何使用三元运算符循环并自动设置偶数/奇数(我必须使用不同的颜色背景以获得偶数和读取能力的几率)
  • 这就是我目前所拥有的。我知道如何手动编码中的偶数/赔率。但我似乎找不到任何帮助,三元运算符可以循环我的代码,检查“p”标记是偶数还是奇数

    function paragraph()
    {
    
       list = new Array();
    
       var list = document.getElementsByTagName("p"); 
    
       var even = list[0];
       var odd = list[1];
    
       even.style.backgroundColor = "#CCFFFF";
       odd.style.backgroundColor = "#CCFFCC";
    } //end of paragraph()
    
    我似乎真的很难处理数组和循环。因此,任何帮助都将不胜感激。 提前谢谢

  • 我的数组存储“p”标记是否正确
  • 实际上,您不需要
    list=newarray()
    因为
    document.getElementsByTagName(“p”)
    返回可以循环的所有
    p
    标记的集合

  • 我如何使用三元运算符循环并自动设置偶数/奇数(我必须使用不同的颜色背景以获得偶数和读取能力的几率)
  • 您需要使用
    for
    循环枚举
    列表
    ,然后使用
    (i%2>0)
    条件检查索引是奇数还是偶数,并应用三元运算符,如下所示

    var list = document.getElementsByTagName("p");
    for (i = 0; i < list.length; i++) {
        list[i].style.backgroundColor = (i % 2 > 0) ? "#CCFFCC" : "#CCFFFF";
    }
    
    var list=document.getElementsByTagName(“p”);
    对于(i=0;i0)?“#CCFFCC”:“#CCFFFF”;
    }
    
    请注意,数组索引从0开始,因此当
    i
    等于0时,它是奇数,因为
    list[0]
    是第一个元素,当
    i
    等于1时,它是偶数,因为
    list[1]
    是第二个元素,依此类推


    工作演示:

    三元运算符只是一种方便,可以避免编写这样的代码:

    var somevar = 0;
    
    if (some_condition) {
        somevar= "somevalue";
    }
    else
    if (another_condition) {
       somevar = "anothervalue"
    }
    
    它不能解决眼前的问题;它只需提供一行代码的语法,就可以避免键入多行代码

    如果您要利用级联样式表,这将简化javascript,如果您要使用它更改每个“p”标记的类名,如下所示:

    <style>
    p { background:#FFF; }
    p.even  {font: 150% Arial,Helvetica;background: #FCC; color:#f00}
    p.odd   {font: 150% Arial,Helvetica;background: #CCF;color:#369}
    </style>
    
    var ptags = document.getElementsByTagName("p"); 
    
    for (i = 0; i < ptags.length; i++) {
        ptags[i].className = ( i % 2 )? 'odd' : 'even';
    }
    
    
    {背景:#FFF;}
    p、 偶数{字体:150%Arial,Helvetica;背景:#FCC;颜色:#f00}
    p、 奇数{字体:150%Arial,Helvetica;背景:#CCF;颜色:#369}
    var ptags=document.getElementsByTagName(“p”);
    对于(i=0;i

    这里的主要运算符是有时称为的模或模。如果该操作的结果为非零,则背景样式将为“奇数”类,否则该类将更改为“偶数” 其优点是,无论何时您可能希望更改这对颜色,都不需要修改javascript——只需要修改偶数和奇数“p”标记类的背景值。此外,如果您希望使用交替字体颜色,则无需修改JavaScript;您只需在“p”标记的偶数和奇数类中指定它们,就像我在示例代码中所做的那样

    在这种情况下,三值操作符使用的结果只能是零或一,这有助于渲染交替颜色。如果我们想要有三种交替的背景样式,那么数学将是“i%3”,在这种情况下,您需要使用switch语句或“If(condition)else If(condition)else…”控制结构,而不是使用三元运算符,因为有三种可能的结果,零,一个和两个以及三元一次只处理两个,虽然可以使用嵌套的三元,但这可能会使代码过于复杂,使其不那么清晰