我在typescript中设置了一个条件,它比较了两个变量:
this.CurrentSelection == this.PreviousSelection
两个变量都是数组,可以是一个空数组([])。在我的应用程序中,我有一个条件,其中每个变量都是一个空数组(CDT监视中的数组(0))。当这两个空数组之间发生比较时,结果为false。好像是[] == []。有关这个潜在原因的任何想法?我需要额外的"或"检查长度的子句== 0对于这种情况?
答案 0 :(得分:0)
您正在比较参考文献。如果true
和a
引用相同的数组,则结果只会是b
:
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])
);