将一个数组转换为具有相同键对的对象数组

converting an array into an array of objects with same key pairs

本文关键字:数组 对象 转换 一个      更新时间:2023-09-26

我有一个这样的数组:-

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

);

我试图这样做的原因是,我可以注入$ statparams和我的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;
  }
}

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

您可以使用映射函数。数组是你的原始对象,结果数组是arrayOfObjs;

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

你得到的数组看起来像这样:

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