在这里,我编写了一个程序,遍历并反转数组元素的最后一部分,就像如果数组是[5, 17, 11, 10, 12, 6]
,并且我想要像 一样的输出[5, 17, 11, 6, 12, 10]
,所以我编写了一个程序,但输出没有按预期输出。您能否检查并修改它以便我得到想要的结果?
let a = [5, 17, 11, 10, 12, 6];
let n = a.length;
for (let i = 0, j = (n / 2) - 1; i < n / 4; i++, j--) {
let temp = a[n / 2 + i];
a[n / 2 + i] = a[j];
a[j] = temp;
}
for (i = 0; i < n; i++) {
console.log(a[i])
}
不需要所有额外的繁琐的元素循环
Array
- 相反,splice()
原始数组中途,reverse()
拼接值,然后push()
它们全部返回到a
.正如我在评论中提到的 - 预先警告,如果 ,这不会按照您看似想要的方式运行
a.length % 2 != 0
,因此您可以考虑使用- 其可接受性将取决于您的要求和约束。Math.floor()
a.length / 2
您可以将数组分为两部分,并使用
reverse
js 方法反转第二部分。如果您不想使用,
reverse
可以按照以下方法操作:这与 @esqew 类似,但不会改变原始数组的版本。
他对甚至没有数组长度的评论仍然适用于此。