问题描述
我正在研究一个程序来学习和提高基本的前端技能。首先,我们使用CodesandBox.io来运行和学习,并在学习的同时进行一些实验。最终,今天下午,当我们遍历数组时,我们遇到了一个奇怪的特性。
我们创建了一个基本的简单数组,并遍历了pop,push,shift,unshift之类的内容,并在通过console.log
方法读取动作的结果时,注意到.push
和{ {1}}没有被报告。我做了一些快速搜索,并创建了另一个console.log命令:.unshift
该命令返回正确的结果,但我想知道为什么,我不太了解JavaScript的许多更深层次的细节,这种奇怪的性质促使我提出了这个问题。
代码:
console.log(JSON.parse(JSON.stringify(lb)));
控制台日志:
let lb = ['bob','Joe','Mike'];
lb.push('last');
lb.unshift('first');
console.log(lb);
console.log(JSON.parse(JSON.stringify(lb)));
console.log('==')
function logArray(arr){
console.log(arr)
console.log(JSON.parse(JSON.stringify(lb)));
console.log('-')
}
logArray(lb);
lb.pop();
logArray(lb);
lb.shift();
logArray(lb);
我会很高兴有人详细介绍为什么["bob","Joe","Mike"]
["first","bob","Mike","last"]
==
["bob","last"]
-
["bob","Mike"]
-
["bob","Mike"]
["bob","Mike"]
-
不在阵列中时会返回所有项目,但是更长的爱好者console.log
会按预期返回阵列中的项目。我绝对会喜欢这些细节,并希望与本计划中的其他开发人员分享这些细节。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)