gpt4 book ai didi

javascript - 从最后一个元素到第一个元素添加到数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:56:06 24 4
gpt4 key购买 nike

我需要一些帮助来修改或创建一个函数来完成一个简单的任务;

这是我的功能:

function arra(sum, length){
var array = [];
for(let i = 0; i < length; i++) {
array.push(0);
}

//console.log(array)
for(let i = 0; i < sum; i++){
array[i] ++
}


return array;
}

console.log(arra(0, 7));
console.log(arra(3, 7));
console.log(arra(7, 7));
console.log(arra(10, 7));

首先,我们创建一个具有长度 的数组,然后将0 压入其中的每个元素。所以数组将是:[0, 0, 0, 0 ,0 ,0 ,0]

然后根据 sum 的值,我想从 array 的最后一个元素到开头添加 1。问题是我想回到第一个元素,如果有足够的 sum 就继续加 1。

所以如果我执行这个:arra(3, 7); 我会得到:[0, 0, 0, 0 ,1 ,1, 1]>/p>

如果我执行这个:arra(7, 7) 我会得到:[1, 1, 1, 1 ,1 ,1 ,1]

但问题是当我执行此命令时:arra(10, 7) 我得到:[1, 1, 1, 1, 1, 1, 1, NaN, NaN, NaN] 那是意想不到的。我想要:[1, 1, 1, 1 ,2 ,2 ,2]

另一个问题是我无法将最后一个元素添加到第一个元素...

编辑:伙计们如何解决这个问题?

最佳答案

如果你想“环绕”,你可以用长度的模数索引数组:array[i%length]。如果你想从另一端开始,你可以从 array[length - 1 - i % length] 中减去——我不清楚你想要哪个顺序,但同样的想法可行无论哪种方式:

function arra(sum, length){
var array = Array(length).fill(0)

//console.log(array)
for(let i = 0; i < sum; i++){
array[length - 1 - i % length] ++
}


return array;
}

console.log(arra(0, 7));
console.log(arra(3, 7));
console.log(arra(7, 7));
console.log(arra(10, 7));

关于javascript - 从最后一个元素到第一个元素添加到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56925622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com