JSFiddle - React, Tailwind, and code Playground

by tanvir_alam_shawn

JavaScript

var collection=[
	{value:20, next:"", prev: "", isLocked:false},
  {value:20, next:"", prev: "", isLocked:false},
  {value:20, next:"", prev: "", isLocked:false},
  {value:20, next:"", prev: "", isLocked:false},
  {value:20, next:"", prev: "", isLocked:false},
];
for(i = 0; i < collection.length; i++) {
	collection[i].next = (i+1) % collection.length;
  collection[i].prev = i > 0 ? i-1 : collection.length-1;
}
collection[1].value = 21;
currentPointer = collection[1];
nextPointer = collection[currentPointer.next]

newTargetValue(currentPointer, nextPointer);


function newTargetValue(currentPointer, nextPointer) {

		console.log(currentPointer, nextPointer)
    if (currentPointer.value >= nextPointer.value) {
    	toBeStolen = currentPointer.value - nextPointer.value;
      console.log(toBeStolen)
    }
    
    if (currentPointer.value <= nextPointer.value) {
    	
    }
    /*if (slider.value<targetValue) {
      toBeStolen = targetValue - slider.value;
    do {
        if (isValidForStealing(slider,currentPointer)) {
          currentPointer.value--;
        toBeStolen--;
      }
        currentPointer = currentPointer.next;
    } while (toBeStolen > 0);
  } else if(slider.value>targetValue) {
      toBeDistributed = slider.value - targetValue;
    do {
        if (isValidForDistribution(slider,currentPointer)) {
          currentPointer.value++;
        toBeDistributed--;
      }
        currentPointer = currentPointer.prev;
    } while (toBeDistributed > 0);
  }
     slider.value = targetValue;*/
}

function isValidForStealing(slider, currentPointer) {
  console.log(slider, currentPointer)
  if (currentPointer) {
    if (currentPointer.value===0) return false;
    if (slider === currentPointer) return false;
    if (currentPointer.isLocked) return false;
  }
  
  return true;
}

 

function isValidForDistribution(slider, currentPointer) {
  if (currentPointer.value===100) return false;
  if (slider === currentPointer) return false;
  if...