【问题标题】:Create a new array object from existing从现有的数组对象创建一个新的数组对象
【发布时间】:2019-02-28 19:03:56
【问题描述】:

我有一个对象数组“myData”。我需要创建一个新的对象数组“newMyData”

下面是“我的数据”

     myData = [
         {
          "PictureUrl": "~/images/test.png",
          "ThumbnailUrl": "~/thumbnail/test.png",
          "Date": "02/08/2018",
          "Time": "09.00.00AM",
          "ImageName": "NewImage"
         },
         {
          "PictureUrl": "~/images/test.png",
          "ThumbnailUrl": "~/thumbnail/test.png",
          "Date": "02/08/2018",
          "Time": "09.00.00AM",
          "ImageName": "NewImage"
         }, .........
        ]

我需要从“myData”中动态创建新的对象数组,如下所示

newMyData = [
         {
          "mainImage": "~/images/test.png",
          "ThumbImage": "~/thumbnail/test.png"
         },
        {
          "mainImage": "~/images/test.png",
          "ThumbImage": "~/thumbnail/test.png"
         }, .........
]

我需要编写的 javascript 函数是什么?如何遍历所有节点。

【问题讨论】:

  • 你好。你都尝试了些什么?你能展示你的代码吗?
  • Google javascript .map() - 这允许您将数组映射到新数组

标签: javascript angular


【解决方案1】:
myNewData = myData.map(data => ({
    mainImage: data.PictureUrl,
    thumbImage: data.ThumbnaiUrl // please, use lowerCase for properties.
}));

【讨论】:

    【解决方案2】:

    使用数组映射:

         myData = [
             {
              "PictureUrl": "~/images/test.png",
              "ThumbnailUrl": "~/thumbnail/test.png",
              "Date": "02/08/2018",
              "Time": "09.00.00AM",
              "ImageName": "NewImage"
             },
             {
              "PictureUrl": "~/images/test.png",
              "ThumbnailUrl": "~/thumbnail/test.png",
              "Date": "02/08/2018",
              "Time": "09.00.00AM",
              "ImageName": "NewImage"
             }, 
            ];
    var newMyData = myData.map(current=>{
        var obj = {};
        obj.mainImage = current.PictureUrl;
        obj.ThumbImage = current.ThumbnailUrl;
        return obj;
    });
    console.log(newMyData);

    【讨论】:

      【解决方案3】:

      Use 可以简单地使用 Arrays.forEach() 遍历您的数组,并在 map 中获取所需的值,最后将该 map 推送到您的新数组中,如下所示:

      var newMyData = [];
      var myData = [
               {
                "PictureUrl": "~/images/test.png",
                "ThumbnailUrl": "~/thumbnail/test.png",
                "Date": "02/08/2018",
                "Time": "09.00.00AM",
                "ImageName": "NewImage"
               },
               {
                "PictureUrl": "~/images/test.png",
                "ThumbnailUrl": "~/thumbnail/test.png",
                "Date": "02/08/2018",
                "Time": "09.00.00AM",
                "ImageName": "NewImage"
               }
              ];
      myData.forEach(function(data) {
          var newMap = {};
          newMap.mainImage = data.PictureUrl;
          newMap.ThumbImage = data.ThumbnailUrl;
          newMyData.push(newMap);
      });
      
      console.log(newMyData);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-08
        • 2021-03-30
        • 2013-06-04
        • 2017-08-26
        • 1970-01-01
        • 1970-01-01
        • 2017-05-07
        • 2021-06-07
        相关资源
        最近更新 更多