如何解决如何一次分配100个号码
我必须遵循以下数组:
var collections=[
{value:20,next:"",prev: "",lastUpdated: false,isLoaked: false,pointer: false},{value:20,pointer: false}
];
使用以下迭代,我可以计算next
和prev
:
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}
];
基于新集合,如果指针是increased
或decreased
示例:第三项的值已增加到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 。
我有Jsfiddle:https://jsfiddle.net/tanvir_alam_shawn/zm21pLen/144/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。