Как сделать массив типов данных(объект) строго равным (===) в JavaScript

0

Вопрос

В моем приложении я должен сделать два типа данных массива(один-любой [], а другой-число[]) равными, используя строго равное.

мой код таков:

.компонент.ts

 if (categoryIds ===  PhysicalPackageConst.nrtPatchCategory){
               this.materialTypes = PhysicalPackageConst.nrtPatchMaterialType;
categoryIds = [];
            
                  }

В приведенном выше условии if он отображается как false, если я делаю это как ===(если я использую==, он показывает данные(true), но не для ===)

пакет.константа.ts

export const PhysicalPackageConst = {
nrtGumCategory : [29],
    nrtPatchCategory : [30]

Поэтому я хочу, чтобы это было верно для вышеуказанного условия в строго определенном состоянии Может ли кто-нибудь помочь мне в этом

angular javascript operators typescript
2021-11-24 06:52:46
1

Лучший ответ

0

Сравнение строгого равенства (===) ("строгое равенство", "идентичность", "тройное равенство") : Строгое равенство сравнивает два значения равенства. Ни одно из значений неявно не преобразуется в какое-либо другое значение перед сравнением. Если значения имеют разные типы, значения считаются неравными. Если значения имеют один и тот же тип, не являются числами и имеют одинаковое значение, они считаются равными. В противном случае для сравнения стоимости.

var num = 0;
var str = '0';

console.log(num === str); // false

Абстрактное сравнение равенства (==) ("свободное равенство", "двойное равенство") : Поведение для выполнения свободного равенства с использованием == заключается в следующем. Свободное равенство сравнивает два значения для равенства после преобразования обоих значений в общий тип. После преобразований (одна или обе стороны могут подвергнуться преобразованиям) окончательное сравнение на равенство выполняется точно так, как === выполняет его.

var num = 0;
var str = '0';

console.log(num === str); // true

Сравнение равенства и одинаковость

Для вашей проблемы логично получить этот результат, потому что вам нужно привести значение массива :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 (). prototype.forEach()

Exemple:

console.log(2 === Number('3')); // false
console.log(3 === Number('3')); // true
2021-11-24 08:47:02

Спасибо@мед Азиза CHETOUI , но на мое требование категории идентификаторы в массив (я.электронная публичных categoryIds: любой[] = []; ) и nrtPatchCategory номер(nrtPatchCategory : 30)для этого, как я могу сделать его максимально строго равны(===) можете ли вы пожалуйста, помогите мне для этого было бы полезно для моего требования
user93

Добро пожаловать, я редактирую свой ответ и пишу на основе вашего комментария, надеюсь, это будет полезно.
Med Aziz CHETOUI

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................