【问题标题】:Change value in array of each object in array更改数组中每个对象的数组值
【发布时间】:2020-08-11 09:02:05
【问题描述】:

我想更改每个对象数组中单个键的值如何使用 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
      }
   ]
}

【问题讨论】:

  • 您需要展示您的编码尝试,以便我们向您展示您做错了什么以及如何解决它。另外,如果你是为了副作用而不是返回结果数组,你应该使用.forEach()

标签: javascript arrays node.js json arraylist


【解决方案1】:

遍历data 属性数组值的元素并更改其目标属性。假设obj 持有对象:

obj.data.forEach ( ( po_element, pn_idx ) => {
    po_element["productThumbImage"] =
        `http://localhost:3000/api/${po_element["productThumbImage"]}`;
};

【讨论】:

    【解决方案2】:

    您可以像这样使用.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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-29
      • 1970-01-01
      相关资源
      最近更新 更多