ключи объекта javascript и значение, если значение соответствует, то сохраните - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть объект, а другой - объект list1, полученный из запроса, но я хочу сохранить значение ключа Obj в массив.

var Obj = { 
  '1': 'Test 1',
  '2': 'Test 2',
  '3': 'Test 3',
  '4': 'Test 4',
  '5': 'Test 5'
}

Я получаю данные из запроса, который является индексным значением в data2введите 1,2,3,4 и 5 в запросе объекта = 'выберите данные1, данные2, данные3 из теста';

list1 = [{
      data1: 123,
      data2: 4,
      data3: 'value3',
}]

Я хочу вывод объекта, если значение data2.


list1 = [{
      data1: 123,
      data2: 'TEST 4',
      data3: 'value3',
}];


Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

Вы можете создать желаемый результат с помощью оператора map для преобразования массива объектов и поиска атрибута data2 из объекта Obj как

var Obj = {
  '1': 'Test 1',
  '2': 'Test 2',
  '3': 'Test 3',
  '4': 'Test 4',
  '5': 'Test 5'
}

list1 = [{
  data1: 123,
  data2: 4,
  data3: 'value3',
}]


var finalList = list1.map(obj => ({
  data1: obj.data1,
  data2: Obj[obj.data2],
  data3: obj.data3
}));

console.log(finalList)
0 голосов
/ 26 сентября 2019

то, что делается ниже: Обход массива list1.Поскольку это массив объектов, мы пересекаем объекты и обновляем item[iter], если Obj[item[iter]] не undefined.

list1.forEach( item => {
  for (iter in item) {
    item[iter] = Obj[item[iter]] !== undefined ? Obj[item[iter]] : item[iter]
  }
})

Результат -

[
  {
    "data1": 123,
    "data2": "Test 4",
    "data3": "value3"
  }
]

Надеждаэто помогает.

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