2016-11-06 2 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 будет иметь идентификатор. Какой бы образ я нажимаю, после того, как он проверяет код ниже: -

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

Спасибо вам так много. Я пробовал использовать карту и для каждого, но вместо этого вместо нее был добавлен новый пустой объект и вместо того, чтобы перенастроить что-либо, что-то вроде newObj.id = element <---, который, очевидно, не работал бы, поскольку он добавит новое свойство id в объект с помощью последний элемент массива. – InNeedOfKnowledge

Смежные вопросы