我有一个节点 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]);
2 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
您可以在此处了解如何调试: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
添加回答
举报
0/150
提交
取消
