Я пытаюсь проверить, существует ли данное значение в качестве ключа в массиве объектов - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь проверить, существует ли данное значение в качестве ключа в массиве объектов

var obj = [{
  tapCount1: '10'
}, {
  tapCount2: '500'
}, {
  tapCount3: '1250'
}, {
  tapCount4: '1250'
}, {
  wtOfSample: '41.00'
}, {
  initialVolume: '66.0'
}, {
  tapCountvol1: '60.0'
}, {
  tapCountvol2: '53.0'
}, {
  tapCountvol3: '52.0'
}, {
  tapDensity: '0.788'
}, {
  compressibilityIndex: '21.212'
}, {
  hausnerRatio: '1.269'
}];

я использовал код ниже

if (arrTDTData.hasOwnProperty("tapCount1") == false) {
  count1 = 0;
} else {
  count1 = arrTDTData.tapCount1;
}

я хочу проверить, равен ли ключ tapCount1, тогда он вернет true, иначе flase```` *

Ответы [ 3 ]

1 голос
/ 23 мая 2019

Используйте includes с map и Object.keysreduce для выравнивания массива):

var obj = [{tapCount1:'10'},{tapCount2:'500'},{tapCount3:'1250'},{tapCount4:'1250'},{wtOfSample:'41.00'},{initialVolume:'66.0'},{tapCountvol1:'60.0'},{tapCountvol2:'53.0'},{tapCountvol3:'52.0'},{tapDensity:'0.788'},{compressibilityIndex:'21.212'},{hausnerRatio:'1.269'}];
const res = obj.map(Object.keys).reduce((acc, curr) => acc.concat(curr)).includes("tapCount1");
console.log(res);

Вы также можете использовать some в самом массиве с hasOwnProperty (чтобы избежать сканирования прототипа):

var obj = [{tapCount1:'10'},{tapCount2:'500'},{tapCount3:'1250'},{tapCount4:'1250'},{wtOfSample:'41.00'},{initialVolume:'66.0'},{tapCountvol1:'60.0'},{tapCountvol2:'53.0'},{tapCountvol3:'52.0'},{tapDensity:'0.788'},{compressibilityIndex:'21.212'},{hausnerRatio:'1.269'}];
const res = obj.some(e => e.hasOwnProperty("tapCount1"));
console.log(res);
1 голос
/ 23 мая 2019

Если вы хотите проверить, есть ли в массиве объект с ключом tapCount1, вы можете использовать some().

Метод some() проверяет, является ли хотя бы один элемент в массиве проходит тест, реализованный предоставленной функцией. Возвращает Булево значение.

var obj = [{"tapCount1":"10"},{"tapCount2":"500"},{"tapCount3":"1250"},{"tapCount4":"1250"},{"wtOfSample":"41.00"},{"initialVolume":"66.0"},{"tapCountvol1":"60.0"},{"tapCountvol2":"53.0"},{"tapCountvol3":"52.0"},{"tapDensity":"0.788"},{"compressibilityIndex":"21.212"},{"hausnerRatio":"1.269"}];

var result = obj.some(o => "tapCount1" in o);

console.log(result);
0 голосов
/ 23 мая 2019

Вы можете получить один объект и проверить требуемое свойство.

var array = [{ tapCount1: '10' }, { tapCount2: '500' }, { tapCount3: '1250' }, { tapCount4: '1250' }, { wtOfSample: '41.00' }, { initialVolume: '66.0' }, { tapCountvol1: '60.0' }, { tapCountvol2: '53.0' }, { tapCountvol3: '52.0' }, { tapDensity: '0.788' }, { compressibilityIndex: '21.212' }, { hausnerRatio: '1.269' }],
    tapCount1 = 'tapCount1' in Object.assign({}, ...array);

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