Изменить значение в массиве каждого объекта в массиве - PullRequest
0 голосов
/ 27 апреля 2020

Я хочу изменить значение отдельного ключа в массиве каждого объекта, как можно через oop пройти через все записи в массиве, используя JavaScript? Я пытался использовать _.map и внутри карты с помощью _.each, но мой не получал, как ожидалось.

{
   "errorMsgs":null,
   "data":[
      {
         "productID":1,
         "productTitle":"'TShirt'",
         "productPrice":120,
         "productComparePrice":12,
         "productThumbImage":12.jpg,
         "status":1
      },
      {
         "productID":2,
         "productTitle":"'Shirt'",
         "productPrice":120,
         "productComparePrice":12,
         "productThumbImage":34.jpg,
         "status":1
      },
      {
         "productID":3,
         "productTitle":"'Pant'",
         "productPrice":120,
         "productComparePrice":12,
         "productThumbImage":23.jpg,
         "status":1
      }
   ]
}

Мой ожидаемый вывод будет таким, как показано ниже:

{
   "errorMsgs":null,
   "data":[
      {
         "productID":1,
         "productTitle":"'TShirt'",
         "productPrice":120,
         "productComparePrice":12,
         "productThumbImage": http://localhost:3000/api/12.jpg,
         "status":1
      },
      {
         "productID":2,
         "productTitle":"'Shirt'",
         "productPrice":120,
         "productComparePrice":12,
         "productThumbImage": http://localhost:3000/api/34.jpg,
         "status":1
      },
      {
         "productID":3,
         "productTitle":"'Pant'",
         "productPrice":120,
         "productComparePrice":12,
         "productThumbImage": http://localhost:3000/api/23.jpg,
         "status":1
      }
   ]
}

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Вы можете использовать .map() метод следующим образом:

const obj = {
  "errorMsgs": null,
  "data": [{
      "productID": 1,
      "productThumbImage": '12.jpg',
    },
    {
      "productID": 2,
      "productThumbImage": '34.jpg',
    },
    {
      "productID": 3,
      "productThumbImage": '23.jpg',
    }
  ]
}

const res = obj.data.map(d => ({...d, productThumbImage: `http://localhost:3000/api/${d.productThumbImage}`}));
const newObj = {...obj, data: res}
console.log(newObj)
0 голосов
/ 27 апреля 2020

Итерируйте по элементам значения массива свойства data и измените их целевое свойство. Предполагая, что obj содержит объект:

obj.data.forEach ( ( po_element, pn_idx ) => {
    po_element["productThumbImage"] =
        `http://localhost:3000/api/${po_element["productThumbImage"]}`;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...