【问题标题】:converting an array into an array of objects with same key pairs将数组转换为具有相同键对的对象数组
【发布时间】:2016-11-06 19:20:54
【问题描述】:

我有一个这样的数组:-

["119306.jpg","149426.jpg","157715.jpg","161706.jpg","171278.jpg","172313.jpg","179934.jpg","182047.jpg","182084.jpg","182261.jpg","183351.jpg","185276.jpg","189666.jpg","190304.jpg","191798.jpg"

我需要将它转换成这样的对象数组:-

var images = [
{
    {
        id:"119306.jpg"

    },
    {
        id:"149426.jpg"

    },
    {
        id:"157715.jpg"

    },
    {
        id:"161706.jpg"
    },
    {
        id:"171278.jpg"
    },
    {
        id:"172313.jpg"
    },
    {
        id:"179934.jpg"
    },
    {
        id:"182047.jpg"
    }
}

];

我尝试这样做的原因是我可以注入 $stateParams 并且我的 ui-sref 将有一个 id 占位符。无论我点击哪个图片,在它检查下面的代码之后:-

for(var i = 0; i < response.data.length; i++) { 
  if($stateParams.id == response.data[i].id) {
    $scope.oneimage = response.data[i].id;
  }
}

基本上,我要做的就是将该数组转换为对象数组,但每个对象都使用相同的密钥对。谢谢。

【问题讨论】:

    标签: javascript angularjs arrays object angular-ui-router


    【解决方案1】:

    您可以使用地图功能。数组是你的原始对象,结果数组是 arrayOfObjs;

    var arrayOfObjs = array.map(function(jpg){
      return {id:jpg};
    });
    

    您的结果数组将如下所示:

    [
    {id:"some.jpg"},
    {id:"some.jpg"},
    {id:"some.jpg"}
    ...
    ]
    

    【讨论】:

    • 非常感谢。我尝试使用 map and for each 但我改为贴出一个新的空对象,而不是重新调整任何东西,我做了类似 newObj.id = element
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 2021-09-24
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多