Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在本地调试节点js文件?调试比较两个数组的函数_Javascript_Node.js - Fatal编程技术网

Javascript 如何在本地调试节点js文件?调试比较两个数组的函数

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]; 我发现我用一个空数组

我有一个节点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]//错误的