我面临一个奇怪的问题。我有两个数字(均为1)并且它们不相等。
> step.id
> Number {[[PrimitiveValue]]: 1}
>
> $scope.process.currentStep
> Number {[[PrimitiveValue]]: 1}
>
> step.id === $scope.process.currentStep
> false
答案 0 :(得分:0)
虽然您的问题确实缺乏细节,但您的问题似乎是由于使用了===
。这是一种严格的检查机制,这意味着它不执行类型/对象转换。因此,如果两个实体不是同一个对象,则它们不相等。通过这种逻辑,从控制台。
"1"==1
true
"1"===1
false
答案 1 :(得分:0)
解决方案对我来说似乎有点脏,但是现在它可以工作,并且它可以很容易地修复它。
我为Number-Type写了一个扩展来比较两个数字。
Object.defineProperty(Number.prototype, 'Equals', {
value: function (compareTo) {
'use strict';
var number = this;
if (typeof (number) === 'number' || typeof (compareTo) === 'number') {
return number === compareTo;
}
return number.toString() === compareTo.toString();
},
writable: true,
configurable: true,
enumerable: false
});