Javascript 如何在本地调试节点js文件?调试比较两个数组的函数
我有一个节点js fileindex.js,它有一个检查两个数组是否相等的函数,我想调试为什么我的函数不起作用。如何调试它 当我使用node index.js运行该文件时,它根本不会写入控制台 函数eqlarr1、arr2{ 让isEqual=真; arr1.forEachitem,索引=>{ ifitem!==arr2[索引]{ console.logitem; console.logarr2[索引]; isEqual=假; } }; 回报均等; } eql[],[1];Javascript 如何在本地调试节点js文件?调试比较两个数组的函数,javascript,node.js,Javascript,Node.js,我有一个节点js fileindex.js,它有一个检查两个数组是否相等的函数,我想调试为什么我的函数不起作用。如何调试它 当我使用node index.js运行该文件时,它根本不会写入控制台 函数eqlarr1、arr2{ 让isEqual=真; arr1.forEachitem,索引=>{ ifitem!==arr2[索引]{ console.logitem; console.logarr2[索引]; isEqual=假; } }; 回报均等; } eql[],[1]; 我发现我用一个空数组
我发现我用一个空数组调用函数,而forEach根本不循环。如果我传递了一个非空数组,则调试工作正常。您可以在此处学习如何调试: 然而,您的问题是,您立即假设它们相等,然后不进行任何迭代来检查实际相等性。forEach不会迭代空数组。考虑此解决方案,检查长度相等,然后使用迭代所有值。 函数eqlarr1、arr2{ //如果长度不同,则提前失败 如果arr1.length!==arr2.length返回false; //确保数组之间的值相同 返回arr1.everyv,idx=>v==arr2[idx]; } console.logeql[],[];//符合事实的 console.logeql[],[1];//错误的 console.logeql[1],[1];//符合事实的 console.logeql[1],[2];//错误的 console.logeql[1],[1,2]//错误的