Как проверить, являются ли объекты в массиве нулевыми. т.е. пара ключ-значение равна нулю - PullRequest
0 голосов
/ 08 мая 2020

Вот массив объектов, состоящих из нулевого объекта:

arr = [{
  yieldConventionId: null,
  yieldConventionName: null,
  yieldCurveSectorId: null,
  yieldCurveSectorName: null,
  yieldCurveTypeId: null,
  yieldCurveTypeName: null,
}]

Как мне написать условие для нулевой проверки для этого типа объекта.

Ответы [ 3 ]

2 голосов
/ 08 мая 2020

Вы можете проверить, не является ли какое-либо из значений NULL, вот я. Возврат массива с true, false, true, когда хотя бы одно из значений не равно NULL. Я использовал Array.map () и Array.some ()

const arr= [{
    'yieldConventionId': null,
    'yieldConventionName': null,
    'yieldCurveSectorId': null,
    'yieldCurveSectorName': null,
    'yieldCurveTypeId': null,
    'yieldCurveTypeName': null
   },
   {'yieldConventionId': null,
    'yieldConventionName': null,
    'yieldCurveSectorId': 'some value',
    'yieldCurveSectorName': null,
    'yieldCurveTypeId': null,
    'yieldCurveTypeName': null
   }
   ];
   
const isAllNotNull = arr.map(function(ob) {
  return Object.keys(ob).some(function(k){
    return ob[k] !== null
   });
});

console.log(isAllNotNull)
0 голосов
/ 08 мая 2020

Вы можете выполнить нулевую проверку, как это

let isNull=arr.some(item=> (item.yieldConventionId === null || item.yieldConventionName === null || item.yieldCurveSectorId === null|| item.yieldCurveSectorName === null || item.yieldCurveTypeId === null || item.yieldCurveTypeName === null));

Это установит ваш isNull в true, если какое-либо из ваших значений равно нулю. Вы можете изменить || на &&, если хотите проверить, все ли значения равны нулю.

0 голосов
/ 08 мая 2020

Поскольку вы находитесь в ES5, вот явная версия с использованием нескольких циклов for. Он использует метод array every(), чтобы проверить, все ли элементы массива (значения объекта в нашем случае) равны null.

arr = [
  {
    yieldConventionId: null,
    yieldConventionName: null,
    yieldCurveSectorId: null,
    yieldCurveSectorName: null,
    yieldCurveTypeId: null,
    yieldCurveTypeName: null
  },
  {
    yieldConventionId: null,
    yieldConventionName: null,
    yieldCurveSectorId: null,
    yieldCurveSectorName: 'not null',
    yieldCurveTypeId: null,
    yieldCurveTypeName: null
  },
];

const allNull = array => {
  let result = [];
  for (const elem of array) {
    elemArr = [];
    for (const item in elem) {
      if(elem.hasOwnProperty(item)) {
        elemArr.push(elem[item]);
      }
    }
    result.push(elemArr.every(item => item === null));
  }
  return result;
}

console.log(allNull(arr));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...