如何一次分配100个号码

问题描述

我必须遵循以下数组:

var collections=[
    {value:20,next:"",prev: "",lastUpdated: false,isLoaked: false,pointer: false},{value:20,pointer: false}
];

使用以下迭代,我可以计算nextprev

for(i = 0; i < collections.length; i++) {
    collections[i].next = (i+1) % collections.length;
  collections[i].prev = i > 0 ? i-1 : collections.length-1;
}

以下是结果:

var collections=[
    {value:20,next:"1",prev: "3",next:"2",prev: "0",next:"3",prev: "1",next:"4",prev: "2",next:"0",pointer: false}
];

基于新集合,如果指针是increaseddecreased

,我需要计算每个值

示例:第三项的值已增加到25

var collections=[
    {value:20,{value:25,pointer: true},pointer: false}
];

预期结果:

0: {value: 19,next: 1,prev: 4,lastUpdated: true,pointer: false}
1: {value: 19,next: 2,prev: 0,pointer: false}
2: {value: 25,next: 3,prev: 1,pointer: true}
3: {value: 18,next: 4,prev: 2,pointer: false}
4: {value: 19,next: 0,prev: 3,pointer: false}

示例2:如果同一指针的值减小为2。

var collections=[
    {value:19,{value:19,{value:23,{value:18,pointer: false}
];

预期以下结果,并遵循prev

0: {value: 20,pointer: false}
1: {value: 20,pointer: false}
2: {value: 23,pointer: false}

到目前为止,我有以下代码

var collections=[
    {value:20,pointer: false}
];
var maxValue = 100;
var totalValue = 0;
var toBedistributedNext = 0;
var toBedistributedPrev = 0;

for(i = 0; i < collections.length; i++) {
    collections[i].next = (i+1) % collections.length;
  collections[i].prev = i > 0 ? i-1 : collections.length-1;
}

collections[2].value = 25;
collections[2].pointer = true;

collections.forEach(function (collection) {
  totalValue += parseInt(collection.value);
});

if (totalValue > maxValue) {
    toBedistributedNext = totalValue - maxValue;
} else {
    toBedistributedPrev = maxValue - totalValue;
}
var currentPointer = collections.find(item => item.pointer === true);
for (let i = 0; i < toBedistributedNext; i++) {
  var nextIndex = currentPointer.next;
  if (!collections[i%collections.length].pointer) {
    collections[i%collections.length].value--;
    collections[i%collections.length].lastUpdated = true;
    console.log(collections[i%collections.length])
    //currentPointer = collections[i%collections.length].next;
  }
}

上面的代码给出以下结果:错误

0: {value: 19,…}
1: {value: 19,…}
2: {value: 25,…}
3: {value: 19,…}
4: {value: 19,…}

最后一个没有计算,请任何人帮助。 总数必须为100

我有Jsfiddlehttps://jsfiddle.net/tanvir_alam_shawn/zm21pLen/144/

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)