,调试有效
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