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



i有一个节点JS文件(index.js(,该函数可以检查两个数组是否相等,我想调试为什么我的Funciton不起作用。我该如何调试?

当我使用(节点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]);

我发现我正在用一个空数组调用该功能,而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([], [])); // true
console.log(eql([], [1])); // false
console.log(eql([1], [1])); // true
console.log(eql([1], [2])); // false
console.log(eql([1], [1, 2])); //false

最新更新