0

Необходимо сравнить 2 обьекта именно keyName с одного и value со второго, и если они совпали то тогда значение первого занести ко второму.

Подробнее:

obj1 = { 
  account:value1
  bank:value2
  kbk:value3
  kbk_text:value4
  mfo:value5
  oblast:value6
  okpo:value7
  receiver_name:value8
}
arr = [
    {name:"bank",
     value:''--сюда мне нужно передать значение поля bank с обьекта1},
    {name:"okpo",
     value:''--сюда мне нужно передать значение поля okpo с обьекта1}
]

Пытаюсь реализовать:

arr.map(function(res){
     forEach(res.name == obj1(keyName)??(тут не знаю как указать что бы сравнивало с ключем а не его значением){
        res.value = keyName value
    }
});

Не знаю как выбрать Название ключа а не его значение.

должно получится:

arr = [
    {name:"bank",value:'value2'},{name:"okpo",value:'value7'}
]

Проблема была в не правильном использовании метода forEach

Решение:

arr.forEach(function (obj) {
      obj.value = obj1[obj.name]
});
Maxim
  • 362
  • Object.keys вернет список ключей в объекте – Grundy Aug 08 '17 at 12:18
  • forEach(obj2.someKey == obj1(keyName) - вот это что-то непонятно. – Grundy Aug 08 '17 at 12:18
  • и добавь еще результат, который ты ожидаешь от приведенного примера, сейчас не совсем понятно – Grundy Aug 08 '17 at 12:19
  • все проще чем ты думаешь. внешний map Не нужен, внутри берешь name, и для значения вставляешь obj1[o.name] – Grundy Aug 08 '17 at 12:33
  • что то я еще больше завис. не понимаю каким образом с ответа по которому я как дубликат мне решить данную ситуацию. это получится forEach(arr.obj.name == obj1[key]) – Maxim Aug 08 '17 at 12:44
  • Все просто: у тебя есть строка, которая является ключом в объекте. Ты хочешь получить значение из объекта, по этому ключу. Для этого нужно использовать скобочную нотацию. Пример как раз в ответе дубликате. – Grundy Aug 08 '17 at 12:46
  • 1
    то есть тебе не надо: res.name == obj1(keyName), тебе надо просто obj1[res.name] – Grundy Aug 08 '17 at 12:46
  • ага. по прошлому комменту понял, спасибо. пробую как раз – Maxim Aug 08 '17 at 12:48
  • вот это я баран)) так жестко затупил)) вопервых сам форич не так использовал. как только допер что не правильно его пытаюсь использовать то многое прояснилось. мап мне нужен но для другого. обект1 с массива вытащить. и в итоге дейстительно решилось грубо говоря 1 строкой obj.value = fields[obj.name] – Maxim Aug 08 '17 at 13:08
  • map не нужен для вытаскивания объекта, он нужен, если ты на основании одной коллекции хочешь получить другую. Для других задач есть более приспособленные методы – Grundy Aug 08 '17 at 13:10
  • как лучше тогда достать объект с массива? – Maxim Aug 08 '17 at 13:16
  • смотря что ты о нем знаешь: лучше всего - по индексу. Можно использовать indexOf, можно find все зависит от задачи и исходных данных – Grundy Aug 08 '17 at 13:55

0 Answers0