2016-11-06 60 views
0

我有一個這樣的數組: -轉換數組與同一密鑰對對象的數組

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

基本上,所有我想要做的是轉換數組爲對象的數組但具有相同的密鑰對他們中的每一個。謝謝。

回答

0

您可以使用地圖功能。數組是你的原始對象,並且結果數組是arrayOfObjs;

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

你的結果數組是這樣的:

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

謝謝你這麼多。我試圖使用地圖和每一個,但我反而decalred一個新的空對象,而不是重新調整我做了像newObj.id =元素<---這顯然wouldnt工作,因爲它會添加一個新的ID屬性與對象數組的最後一個元素。 – InNeedOfKnowledge