作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在阅读这本 Eloquent 书,做了一个小作业,遇到了一些我无法真正弄清楚的事情。为什么 return 给出了一个答案而 console.log 给出了不同的答案?
function reverseArrayInPlace(r){
var z = [];
for(var c = (r.length)-1;c>=0;c--){
z.push(r[c]);
}
console.log(z);
return z;
}
var arrayValue = [1, 2, 3, 4, 5];
reverseArrayInPlace(arrayValue);
console.log(arrayValue);
// → [5, 4, 3, 2, 1]
结果:
[5, 4, 3, 2, 1] <- console.log(z)
[1, 2, 3, 4, 5] <- 返回 z
最佳答案
您不是在原地 反转数组。您正在创建一个由 reverseArrayInPlace
编辑:解决方案
不是创建一个新数组并返回它,而是简单地将原始数组的内容替换为您在函数末尾使用此行反转的数组:
r.splice.apply(r,[0,r.length].concat(z))
此行删除数组 r
中的所有元素,并将它们替换为数组 z
中的所有元素,然后您可以简单地返回 r
function reverseArrayInPlace(r){
var z = [];
for(var c = (r.length)-1;c>=0;c--){
z.push(r[c]);
}
console.log(z);
r.splice.apply(r,[0,r.length].concat(z));
return r;
}
var arrayValue = [1, 2, 3, 4, 5];
reverseArrayInPlace(arrayValue);
console.log(arrayValue);
关于javascript - ReverseArrayInPlace 奇怪的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34502920/
关于这个问题还有其他问题,但我想知道为什么我的代码没有反转给定的数组。注意:我对编码非常陌生,只是自学并尝试根据个人兴趣进行练习。 在书中Eloquent Javascript ,我们被要求编写两个不
我正在阅读这本 Eloquent 书,做了一个小作业,遇到了一些我无法真正弄清楚的事情。为什么 return 给出了一个答案而 console.log 给出了不同的答案? function rever
谁能告诉我这个函数在反转数组时哪里出错了?这是 Eloquent JavaScript 一书中的练习。 我已经通过控制台检查了我的变量,循环似乎在工作,但最后数组索引似乎没有被覆盖,我不明白为什么!
我是一名优秀的程序员,十分优秀!