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

我有一个节点 js 文件(index.js),带有一个函数来检查两个数组是否相等,我想调试为什么我的函数不工作。我该如何调试它?


当我使用 (node index.js) 运行文件时,它根本不写入控制台。


function eql(arr1, arr2) {

  let isEqual = true;

  arr1.forEach((item, index) => {

    if(item !== arr2[index]) {

      console.log(item);

      console.log(arr2[index]);

      isEqual = false;

    }

  });

  return isEqual;

}

eql([], [1]);


跃然一笑
浏览 267回答 2
2回答

慕妹3242003

我发现我正在使用一个空数组调用该函数,而 forEach 根本没有循环。如果我传递一个非空数组,调试工作

猛跑小猪

您可以在此处了解如何调试:node.js 调试指南。但是,您的问题是您立即假设它们相等,然后不通过任何迭代来检查实际相等性。 forEach不会迭代空数组。考虑这个解决方案,它检查长度相等,然后使用every()以下方法迭代所有值:function eql(arr1, arr2) {  // Fail early if not same length  if (arr1.length !== arr2.length) return false;  // Make sure values are same between arrays  return arr1.every((v, idx) => v === arr2[idx]);}console.log(eql([], [])); // trueconsole.log(eql([], [1])); // falseconsole.log(eql([1], [1])); // trueconsole.log(eql([1], [2])); // falseconsole.log(eql([1], [1, 2])); //false
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript