JavaScript中的数组创建

JavaScript中的数组创建,javascript,Javascript,这可能是一个相当愚蠢的问题,但我现在在Javascript中的数组方面遇到了一些问题。也就是说,为什么会这样: var data = new Array(new Array('a', 'b', 'c')); 不等于: var data2 = [['a', 'b', 'c']]; 如果我比较两个数组并打印出结果,它会显示false。为什么呢 alert(data2==data); >false 更令人困惑的是,如果我创建第三个数据数组作为data2并将其命名为data3,为什么在比较这

这可能是一个相当愚蠢的问题,但我现在在Javascript中的数组方面遇到了一些问题。也就是说,为什么会这样:

var data = new Array(new Array('a', 'b', 'c'));
不等于:

var data2 = [['a', 'b', 'c']];
如果我比较两个数组并打印出结果,它会显示
false
。为什么呢

alert(data2==data);
>false
更令人困惑的是,如果我创建第三个数据数组作为data2并将其命名为data3,为什么在比较这两个数组时,它仍然返回
false

var data3 = [['a', 'b', 'c']];
alert(data2==data3);
>false

我这里有什么不对吗?

这是关于这个问题的另一个综合答案:


该代码如何实现数组相等的基本要点是在这两者之间循环并逐段检查数组的每个索引是否相等。

您是在比较引用,而不是值。每个新数组都是一个具有自己引用的新对象。这就是为什么即使是
[]=[]
也会返回
false