我想反转输入到函数中的数组。
但是由于某种原因,控制台返回了数组的第一个值,而不是在while循环中获取完整的数组,因此控制台可以将值从末尾移到最前面,然后删除相同的值。
function littleWHEW(lemonade) {
let i = lemonade.length - 1;
while (i >= 0) {
lemonade.unshift(lemonade[i])
lemonade.pop(lemonade[i])
i = i - 1
}
return lemonade
}
console.info(littleWHEW([1,2,3,4,5]))
答案 0 :(得分:1)
只需使用
reverse()
方法:
function littleWHEW(lemonade) {
return lemonade.reverse();
}
顺便说一句,您不应该在pop()方法中添加参数。
答案 1 :(得分:0)
自从您要求解释以来,让我们进行深入调查。在开始之前,请先看一下
unshift
和pop
首先i = 4
。这是一个循环中发生的事情:
[1,2,3,4,5]
是原始数组。 lemonade.unshift(lemonade[i])
将一个元素添加到lemonade
的第一位置。此时i = 4
,因此lemonade[4] = 5
,我们有了[5,1,2,3,4,5]
(请注意粗体字)。pop
是您的最后一个。 [5,1,2,3,4,5]
成为[5,1,2,3,4]
。i
。现在i = 3
,这是第二个循环中发生的事情:
[5,1,2,3,4]
是原始数组。 lemonade.unshift(lemonade[i])
将一个元素添加到lemonade
的第一位置。此时i = 3
,因此lemonade[3] = 3
,我们有了[3,5,1,2,3,4]
(请注意粗体字)。pop
是您的最后一个。 [3,5,1,2,3,4]
成为[3,5,1,2,3]
。i
。一个循环之后,您的i
并没有按预期指向最后一个元素,并且使事情出错(如第二个循环一样)。