简体   繁体   中英

how to check if indexOf is even or odd?

I want to add a style to odd and even elements of this array.

 let myArr = ["a", "b", "c", "d", "e", "f"];
const btn = document.querySelector("#btn");
const body1 = document.body;

let i = 0;

btn.addEventListener("click", function () {
  i++;
  let newDiv = document.createElement("div");
  newDiv.textContent = myArr[i];
  body1.appendChild(newDiv);
});

确定一个数是偶数还是奇数的最简单和最有效的方法:

number & 1

I assume the items in the array are DOM elements? So you maybe want to do something like this:

arr.forEach((item, index) => {
 if (index % 2 == 0) {
   // Even
   item.style = ...;
   // or maybe
   item.className = ...;
 } else {
   // Same here, apply whatever style/class you want to use for the odd elements.
      }
});

You will need to loop through the array to get the index. Using that, you can do the modulus check to see if it's even or odd and do something with the div before pushing it on to the body.

 document.addEventListener('DOMContentLoaded', () => { let myArr = ["a", "b", "c", "d", "e", "f"]; const btn = document.querySelector("#btn"); const body1 = document.body; // Start at 1 to avoid any + 1 in the modulus check for(let i = 1; i <= myArr.length; i++) { const newDiv = document.createElement("div"); newDiv.style.width = '100px' newDiv.style.height = '100px' newDiv.style.margin = '5px' newDiv.style.color = 'white' // - 1 because we start the loop at 1 and indexes start at 0 in JS newDiv.textContent = myArr[i - 1]; if (i % 2 === 0) { newDiv.style.backgroundColor = 'red' newDiv.style.float = 'right' } else { newDiv.style.backgroundColor = 'blue' newDiv.style.float = 'left' } body1.appendChild(newDiv); } })

I believe this will work for you:

var Arr = ["a", "b", "c", "d"];
for (i=0; i<Arr.length; i++){
    var OddOrEven = (i % 2) ? "Even" : "Odd";
    if (OddOrEven=="Odd"){
        // Do Stuff For Odd
    } else {
        // Do Stuff For Even
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM