удалить свойства из объекта, если он не существует в массиве - PullRequest
0 голосов
/ 24 января 2019

Это объект, который я хочу использовать для извлечения данных из базы данных.

let productsIdCount = { 
    '9r854asdsdsdf16351351asf': 54,
    '9r854asdsdsdf16351351asp': 55,
    '9r854asdsdsdf16351351asi': 114,
    '9r854asdsdsdf16351351asm': 22,
    '9r854asdsdsdf16351351asc': 42,
    '9r854asdsdsdf16351351ase': 29,
    '9r854asdsdsdf16351351asw': 42,
    '9r854asdsdsdf16351351ass': 19,
    '9r854asdsdsdf16351351asy': 111,
}

Это данные, с которыми я хочу сравнить:

let pidArray = [ 
  '9r854asdsdsdf16351351asi',
  '9r854asdsdsdf16351351asw',
  '9r854asdsdsdf16351351ass',
  '9r854asdsdsdf16351351asp',
  '9r854asdsdsdf16351351asy',
]

Итак, если pidArray имеет идентификатор, которого нет в productsIdCount, я хочу удалить это свойство id и пару значений из объекта. Или просто создайте другой объект и добавьте в массив пару проп и значение с одинаковым идентификатором.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

попробуйте это:

let productsIdCount = { 
    '9r854asdsdsdf16351351asf': 54,
    '9r854asdsdsdf16351351asp': 55,
    '9r854asdsdsdf16351351asi': 114,
    '9r854asdsdsdf16351351asm': 22,
    '9r854asdsdsdf16351351asc': 42,
    '9r854asdsdsdf16351351ase': 29,
    '9r854asdsdsdf16351351asw': 42,
    '9r854asdsdsdf16351351ass': 19,
    '9r854asdsdsdf16351351asy': 111,
}

let pidArray = [ 
  '9r854asdsdsdf16351351asi',
  '9r854asdsdsdf16351351asw',
  '9r854asdsdsdf16351351ass',
  '9r854asdsdsdf16351351asp',
  '9r854asdsdsdf16351351asy',
]

const f = (objValues, listOfPids) => {
  const filteredValue = {};
  for(pid in objValues) 
    if (listOfPids.includes(pid)) 
      filteredValue[pid] = objValues[pid]
  return filteredValue;
}

const newValue = f(productsIdCount, pidArray);

console.log(newValue);

enter image description here

0 голосов
/ 24 января 2019

Просто цикл для создания нового объекта:

const result = {};
for (const prop in productsIdCount)
    if (pidArray.includes(prop))
        result[prop] = productsIdCount[prop];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...