NW.js:如果两个数组都不相等

我正在使用NW.js作为一个侧面项目,我需要检测是否有任何更改,当我的项目树聚焦。

我正在使用JQuery的。每个检查项目文件夹中的文件,因为重点已经改变。

这就是我对窗口聚焦的function。

win.on("focus", function() { var stringArray = []; listFiles = fs.readdirSync(__dirname + "/content/project"); console.log("checking if there's any changes"); $.each($("[data-nme]"), function() { stringArray.push(this.textContent); }); var array1 = listFiles; var array2 = JSON.stringify(stringArray); console.log(array1); console.log(array2); if (array1.toString() != array2.toString()) { console.log("there's been a change"); } }); 

当我debugging我得到以下结果。

在这里输入图像说明

我不明白它为什么说当数组完全相同时与数组有区别。

 if (array1.toString() != array2.toString()) { console.log("there's been a change"); } 

如果任何人都可以帮助,将不胜感激。

错误是在你检查平等的方式。 其中一个数组是JSON.stringified另一个不是。 不要使用JSON.stringify(stringArray)来定义array2。

 var foo = ["bar"]; foo.toString(); 

输出: "foo"

 JSON.stringify(foo).toString() 

输出: "["foo"]"

这个条件应该工作(没有testing):

  if (array1.toString() != stringArray.toString()) { console.log("there's been a change"); } 

如果你想最好的select比较数组检查这一个: 如何比较JavaScript中的数组?