JavaScript循环以递减数组最后一个索引中的元素


Array = [ 1, 3, 7, 2 ]
1st Iteration = [ 1, 3, 7, 1 ]
2nd Iteration = [ 1, 3, 7, 0 ]
3rd Iteration = [ 1, 3, 6 ]
4th Iteration = [ 1, 3, 5 ]

所以&等等。。。

最终迭代应该是一个空的[]

我想创建一个循环,它取最后一个索引&在每次迭代中将该值递减1。当最后一个索引中的值=0时,它应该弹出…

如有任何帮助,我们将不胜感激。

我们可以使用while和Array.prototype.pop((.

function solution(array) {
while (array.length !== 0) {
while (array[array.length - 1] >= 1) {
array[array.length - 1] -= 1;
console.log(array);
}
array.pop();
console.log(array);
}
}

我认为这可能会帮助您。

const decrementLastIndex = (array) => {
let newArray = [];
for (let i = array.length - 1; i >= 0; i--) {
newArray.push(array[i]);
}
return newArray;
}

以下是实现这一目标的一种方法

function decrementElement(array){
while(array?.length !== 0){
let size = array.length;
let lastIndex = size - 1;
if(array[lastIndex] > 0) {
array[lastIndex] -= 1; 
} else {
array.pop();
}
//printing the array
console.log(array);
}
};

我希望它能有所帮助:(如果你需要更多的帮助或有任何疑问,请回复。

您可以采用递归方法,首先检查最后一项。

function dec(array) {
if (!array.at(-1)) array.pop();
else array[array.length - 1]--;
console.log(...array);
if (array.length) return dec(array);
}
dec([1, 3, 7, 2]);
.as-console-wrapper { max-height: 100% !important; top: 0; }

最新更新