将数组转换为具有相同密钥对的对象数组

时间:2016-11-06 19:20:55

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

我有一个这样的数组: -

["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;
  }
}

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

1 个答案:

答案 0 :(得分:0)

您可以使用地图功能。将数组作为原始对象,结果数组为arrayOfObjs;

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

您生成的数组将如下所示:

[
{id:"some.jpg"},
{id:"some.jpg"},
{id:"some.jpg"}
...
]
相关问题