为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

跃然一笑 2021-08-26 14:55:11
我有一个节点 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 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

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


查看完整回答
反对 回复 2021-08-26
?
猛跑小猪

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


查看完整回答
反对 回复 2021-08-26
  • 2 回答
  • 0 关注
  • 266 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号