Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NW.js:如果两个数组相等,则不工作_Javascript_Jquery_Node.js_Node Webkit_Nwjs - Fatal编程技术网

Javascript NW.js:如果两个数组相等,则不工作

Javascript NW.js:如果两个数组相等,则不工作,javascript,jquery,node.js,node-webkit,nwjs,Javascript,Jquery,Node.js,Node Webkit,Nwjs,我正在使用一个IDE作为一个辅助项目进行工作,我需要检测在关注时我的项目树是否有任何更改 我正在使用“检查项目文件夹中的文件自聚焦后是否已更改” 下面是我对窗口聚焦函数的介绍 win.on("focus", function() { var stringArray = []; listFiles = fs.readdirSync(__dirname + "/content/project"); console.log("checking if there's any changes"

我正在使用一个IDE作为一个辅助项目进行工作,我需要检测在关注时我的项目树是否有任何更改

我正在使用“检查项目文件夹中的文件自聚焦后是否已更改”

下面是我对窗口聚焦函数的介绍

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");
  }
});
当我调试时,我得到以下结果

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

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

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

var foo = ["bar"];
foo.toString();
输出:
“foo”

输出:
“[“foo”]”

此条件应处于工作状态(未测试):

如果您想要比较阵列的最佳选项,请选中此选项:

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