比較陣列中的唯一項目編輯: faintsignal提供的鏈接是最適用的答案。它不僅解釋了爲什麼會發生這種情況,而且爲解決所述問題提供瞭解決方案。使用Set
我有一個數組,我想確定是否所有元素都等於單個值。下面的代碼看起來應該可以工作,但它不會。誰能解釋一下?
var array1 = ['foo', 'bar', 'baz'];
var array2 = ['foo', 'foo', 'foo'];
//I expect this to be false and it is
new Set(array1) == new Set(['foo']);
//I expect this to be true and it is not
new Set(array2) == new Set(['foo']);
任何信息將不受歡迎!
可能重複[爲什麼兩個相同的對象不相等?](http://stackoverflow.com/questions/11704971/why-are-two-identical-objects-not-equal-to-each-其他),這裏是一個[如何比較](http://stackoverflow.com/questions/201183/how-to-determine-equality-for-two-javascript-objects),也鏈接在重複 – baao
它doesn'如果你有兩個完全相同的對象,那麼'object1 == object2'只有在它們確實是*完全相同的對象*時纔會計算爲真。 – Santi
您正在比較對象,並且它們與您認爲應該的方式不同。看看[這裏](http://stackoverflow.com/questions/201183/how-to-determine-equality-for-two-javascript-objects) – Noelkd