我正在学习在DevTools Chrome中调试代码。在处理这样的任务时,我遇到了以下问题。
function Access(arr1, arr2) {
let sorty= arr1.concat(arr2).sort((a, b) => {
if (a > b) return 1;
if (a == b) {
return 0;
}
if (a < b) return -1;
});
debugger;
// console.log(sorty);
return sorty.filter((beg,end)=>{
console.log ('beg: ' , beg,' end: ', end);
console.log ('indexOf(beg): ', sorty.indexOf(beg), " indexOf(end): ", sorty.indexOf(end));
return sorty.indexOf(beg)===end});
}
console.log( 'p'+ Access([1,4,3,5],[3,7,8,4,5])+' s');
在调试面板堆栈中,我看到两个传入数组,一个被粘附和排序的数组。但是在上次检查indexOf时得到的数组在任何地方都找不到。它只出现在函数的末尾。我如何在indexOf检查时看到数组被写在哪里?第二个问题。我在函数本身中有console.log语句。然后是通过控制台的函数调用。log -最后一行。为什么在调用函数时,字母“p”写在一个完全处理过的数组的输出之前?正如我所假设的,字母“p”应该出现在数组的元素和索引的输出之前。enter image description here
谢谢你的帮助。
1条答案
按热度按时间mspsb9vt1#
您可以使用
reduce()
来调试逐渐形成的数组,因为它允许您使用累加器(在本例中声明为a
):为了回答第二个问题,代码
console.log( 'p'+ Access([1,4,3,5],[3,7,8,4,5])+' s');
正在连接字符串,并且只有在返回Access()
时才会输出。这显示了如何使用三个不同的
console.log()
首先输出p