如何使数组数据类型(对象)在 JavaScript 中严格等于 (===)
how to make to array data types(object) as strictly equal (===) in JavaScript
在我的应用程序中,我必须使用严格相等的方式使两个数组数据类型(一个是任意[],另一个是数字[])相等。
我的代码是:
.component.ts
if (categoryIds === PhysicalPackageConst.nrtPatchCategory){
this.materialTypes = PhysicalPackageConst.nrtPatchMaterialType;
categoryIds = [];
}
在上面的 if 条件中,如果我将其设置为 ===(如果我使用 == 它显示数据(true)但不是===)
package.constant.ts
export const PhysicalPackageConst = {
nrtGumCategory : [29],
nrtPatchCategory : [30]
所以我想在严格条件下使上述条件为真
谁能帮我解决这个问题
严格相等比较 (===) ("严格相等", "同一性", "三重相等") : 严格equality 比较两个值是否相等。在比较之前,这两个值都不会隐式转换为其他某个值。如果值具有不同的类型,则认为这些值不相等。如果值具有相同的类型,不是数字,并且具有相同的值,则它们被认为是相等的。否则比较值。
var num = 0;
var str = '0';
console.log(num === str); // false
Abstract Equality Comparison (==) ("loose equality", "double equals") : 执行松散相等的行为使用 ==
如下。松散相等在将两个值转换为通用类型后比较两个值是否相等。转换后(一侧或两侧都可能进行转换),最终的相等比较完全按照 ===
执行。
var num = 0;
var str = '0';
console.log(num === str); // true
Equality comparisons and sameness
对于你的问题,得到这些结果是合乎逻辑的,因为你需要将数组 :any[] 的值转换为数字并进行严格比较。
let categoryIds: any[] = [];
let nrtPatchCategory: number = 30;
// browse categoryIds arrays (you can use any other method like for ...)
categoryIds.forEach(categoryId => {
if (Number(categoryId) === nrtPatchCategory) {
...
}
});
注意: forEach() 的更多细节Array.prototype.forEach()
例子:
console.log(2 === Number('3')); // false
console.log(3 === Number('3')); // true
在我的应用程序中,我必须使用严格相等的方式使两个数组数据类型(一个是任意[],另一个是数字[])相等。
我的代码是:
.component.ts
if (categoryIds === PhysicalPackageConst.nrtPatchCategory){
this.materialTypes = PhysicalPackageConst.nrtPatchMaterialType;
categoryIds = [];
}
在上面的 if 条件中,如果我将其设置为 ===(如果我使用 == 它显示数据(true)但不是===)
package.constant.ts
export const PhysicalPackageConst = {
nrtGumCategory : [29],
nrtPatchCategory : [30]
所以我想在严格条件下使上述条件为真 谁能帮我解决这个问题
严格相等比较 (===) ("严格相等", "同一性", "三重相等") : 严格equality 比较两个值是否相等。在比较之前,这两个值都不会隐式转换为其他某个值。如果值具有不同的类型,则认为这些值不相等。如果值具有相同的类型,不是数字,并且具有相同的值,则它们被认为是相等的。否则比较值。
var num = 0;
var str = '0';
console.log(num === str); // false
Abstract Equality Comparison (==) ("loose equality", "double equals") : 执行松散相等的行为使用 ==
如下。松散相等在将两个值转换为通用类型后比较两个值是否相等。转换后(一侧或两侧都可能进行转换),最终的相等比较完全按照 ===
执行。
var num = 0;
var str = '0';
console.log(num === str); // true
Equality comparisons and sameness
对于你的问题,得到这些结果是合乎逻辑的,因为你需要将数组 :any[] 的值转换为数字并进行严格比较。
let categoryIds: any[] = [];
let nrtPatchCategory: number = 30;
// browse categoryIds arrays (you can use any other method like for ...)
categoryIds.forEach(categoryId => {
if (Number(categoryId) === nrtPatchCategory) {
...
}
});
注意: forEach() 的更多细节Array.prototype.forEach()
例子:
console.log(2 === Number('3')); // false
console.log(3 === Number('3')); // true