javascript – 反转数组时的2个不同输出
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 反转数组时的2个不同输出,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1341字,纯文字阅读大概需要2分钟。
内容图文
![javascript – 反转数组时的2个不同输出](/upload/InfoBanner/zyjiaocheng/728/da36d07a9f8647cd9914a561ca0d0e15.jpg)
我正在学习书上的Javascript,并且必须通过创建我自己的反向函数来练习反转数组.必须反转数组而不创建新变量来保存反转数组.我以为我找到了一个解决方案,但当我尝试以两种不同的方式输出我的答案时(见下文),我得到了不同的输出:
function reverseArrayInPlace(array) {
for (var i = 0; i < array.length; i += 1) {
array = array.slice(0, i).concat(array.pop()).concat(array.slice(i));
}
console.log(array);
}
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
以下是输出:
reverseArrayInPlace(array);
console.log(array);
> [ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 ]
> [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
当在函数中使用console.log()时,我得到了我想要的答案.
当在函数外部使用console.log()时,我得到原始数组,缺少最后一个元素.我想解释一下这种现象.
解决方法:
函数中的数组与全局/窗口级别的数组不同 – 永远不会触及全局数组;该函数改为更改它的本地副本.
如果你没有将数组作为参数传递给函数,那么它将作用于现在未屏蔽的全局数组变量:
function reverseArrayInPlace() { // <-- no parameter
for (var i = 0; i < array.length; i += 1) {
array = array.slice(0, i).concat(array.pop()).concat(array.slice(i));
}
console.log(array);
}
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
reverseArrayInPlace();
console.log(array);
(…虽然使用像这样的全局变量一般都是不好的做法,部分原因是很容易意外地使用局部变量来掩盖它们,就像你在这里做的那样.更好的模式是函数接收数据作为参数并返回一个值,所以你可以在调用函数时决定将返回值赋给的内容.)
内容总结
以上是互联网集市为您收集整理的javascript – 反转数组时的2个不同输出全部内容,希望文章能够帮你解决javascript – 反转数组时的2个不同输出所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。