2017-09-01 50 views
-1

我在打字稿設置一個條件,其比較顯示2個變量:typescript/javascript條件:[]!= []?

this.CurrentSelection == this.PreviousSelection 

兩個變量都是陣列,並且可以是一個空數組([])。在我的應用程序中,我有一個條件,其中每個變量都是一個空數組(CDT watch中的Array(0))。當這兩個空數組發生比較時,結果是錯誤的。看起來像[] == []。有關這個的根本原因的任何想法?我是否需要額外的「或」子句來檢查此場景的長度== 0?

回答

0

您正在比較參考文獻。結果只會是true如果兩個ab參考同一陣列:

const a = []; 
 
const b = []; 
 
const c = a; 
 

 
console.log(a === b); 
 
console.log(a === c);

如果你想檢查是否兩個數組包含相同的值,你可以做這樣的事情:

function arrayEquals(a, b) { 
 
    return a.length === b.length && a.every((v, i) => v === b[i]); 
 
} 
 

 
console.log(
 
    arrayEquals([1,2,3], [1,2,3]) 
 
);