Javascript 为什么它们不一样?

Javascript 为什么它们不一样?,javascript,dom,Javascript,Dom,本声明: [].slice.call(document.getElementsByTagName("div")).forEach(function (item,index){console.log (item===[].slice.call(document.querySelectorAll("div"))[index])}); 给出所有真实的结果。 但是: 给出错误的结果。 为什么?在第二种情况下,您试图比较两个数组,而在第一种情况下,您正在比较单个元素。这就是结果不同的原因 比较数组的各个

本声明:

[].slice.call(document.getElementsByTagName("div")).forEach(function (item,index){console.log (item===[].slice.call(document.querySelectorAll("div"))[index])});
给出所有真实的结果。 但是:

给出错误的结果。
为什么?

在第二种情况下,您试图比较两个数组,而在第一种情况下,您正在比较单个元素。这就是结果不同的原因

比较数组的各个元素和比较两个数组并不相等。例如,此javascript函数检查数组相等性

 function arraysEqual(a, b) {
  if (a === b) return true;
  if (a == null || b == null) return false;
  if (a.length != b.length) return false;

  // If you don't care about the order of the elements inside
  // the array, you should sort both arrays here.

  for (var i = 0; i < a.length; ++i) {
    if (a[i] !== b[i]) return false;
  }
  return true;
}

结果是正确的。

在第二种情况下,您试图比较两个数组,而在第一种情况下,您正在比较单个元素。这就是结果不同的原因

比较数组的各个元素和比较两个数组并不相等。例如,此javascript函数检查数组相等性

 function arraysEqual(a, b) {
  if (a === b) return true;
  if (a == null || b == null) return false;
  if (a.length != b.length) return false;

  // If you don't care about the order of the elements inside
  // the array, you should sort both arrays here.

  for (var i = 0; i < a.length; ++i) {
    if (a[i] !== b[i]) return false;
  }
  return true;
}

结果是真的。

我能说的最简单的方式是:

var a = [];
var b = [];

a === b // false

数组是javascript中的对象。如果实例化两个数组,则它们之间不存在===关系。但是,如果一个元素接一个元素,并且元素相同,那么它们是相等的,因为您比较的是同一个对象。

我可以说的最简单的方法是:

var a = [];
var b = [];

a === b // false

数组是javascript中的对象。如果实例化两个数组,则它们之间不存在===关系。但是,如果一个元素接一个元素,并且元素相同,那么它们是相等的,因为您正在比较相同的对象。

请格式化您的代码。在当前状态下阅读非常困难。请格式化您的代码。在当前状态下很难读取这两个数组有相同的元素,但为什么它们不同?这两个数组有相同的元素,但为什么它们不同?