dimakrugly / onix

1 stars 0 forks source link

Зміна активного елемента #35

Closed DmitriiMelnikOnix closed 1 year ago

DmitriiMelnikOnix commented 1 year ago
let newCartData;
if (currentActive >= 0 || currentActive <= cartData.length - 1) {
  newCartData = cartData
    .map((item, index) => (index === currentActive + 1
      ? { ...item, active: true } : { ...item, active: false }));
}
if (currentActive === cartData.length - 1 || currentActive === -1) {
  newCartData = cartData.map((item, index) => (index === 0
    ? { ...item, active: true } : { ...item, active: false }));
}

Досить багато складного коду, ще й дублюється

const newIndex = (currentActive + 1) % cartData.length;
const newCartData = cartData.map((item, index) => ({ ...item, active: index === newIndex }));

% - це остача від ділення. І в неї я дуже гарна властивість, як раз на такий випадок

0%4 = 0 1%4 = 1 2%4 = 2 3%4 = 3 4%4 = 0 5%4 = 1 6%4 = 2 7%4 = 3 8%4 = 0 9%4 = 1 ....

dimakrugly commented 1 year ago

Не маю уявлення як ти до цього додумався) Зробив рефактор, дякую