【发布时间】:2016-10-30 14:47:35
【问题描述】:
我必须编写一个反转数组的函数(我知道反转方法,但这次我必须编写一个函数)。此函数必须将数组变量作为输入并返回相同的变量,但元素的顺序相反。我不明白为什么这段代码有效:
function reverseArrayInPlace(array) {
for (i = array.length; i > 0; i--) {
array.shift(array.push(i));
}
return array;
};
而且这段代码没有
function reverseArrayInPlace(array) {
for (i = array.length; i > 0; i--) {
array.unshift(array.pop(i));
}
return array;
};
虽然他们做的事情完全一样?
【问题讨论】:
-
根据定义,他们没有做同样的事情。
shift和unshift是不同的方法。 -
如果目标是反转它接收到的数组的内容,第一个不会“工作”。相反,它所做的是将其内容替换为数字
1,通过数组的长度反向,消除其原始内容。例如,["a", "b", "c"]变为[3, 2, 1]。 -
.push方法返回数组的当前length! -
如果你推送移位的元素,你将得到相同的数组。如果你取消一个弹出的元素,同样的事情。
-
提供一个不显示任何内容的代码 sn-p 有什么意义?
标签: javascript arrays iteration