AngularJS/JavaScript从另一个对象创建新对象

AngularJS/JavaScript从另一个对象创建新对象,javascript,arrays,json,angularjs,object,Javascript,Arrays,Json,Angularjs,Object,我有一个问题,我已经坚持了一段时间,正在寻求一些建议 在我的控制器上,我对后端有一个重新启动的调用,以检索一些数据,如下所示 { "banner_heading": { "data": "Services", "id": 1 }, "banner_text": { "data": "some banner text", "id": 2 }, "banner_img": {

我有一个问题,我已经坚持了一段时间,正在寻求一些建议

在我的控制器上,我对后端有一个重新启动的调用,以检索一些数据,如下所示

{
    "banner_heading": {
        "data": "Services",
        "id": 1 
    },
    "banner_text": {
        "data": "some banner text",
        "id": 2 
    },
    "banner_img": {
        "data": "services.jpg",
        "id": 3 
    }
}
Angularjs控制器(使用Restangular)

现在,当我注销
$scope.content
时,我得到了一个数组,其中有三个对象看起来与此类似

Array[3]
    0: Object
        banner_heading: "Services",
        id: 1

    1: Object 
        banner_text: "some banner text",
        id: 2

    2: Object
        banner_img: "services.jpg",
        id: 3
这些对象还有很多,但为了这个问题,我已经对其进行了简化,这些是我想从对象中获得的唯一属性

banner_标题、banner_文本和banner_img都是使用lodash forEach循环在上面的控制器中动态创建的属性

现在我来谈谈我正在努力完成的事情。我需要从这个对象数组中创建一个如下所示的对象

{
    "banner_heading": {
        "data": "Services",
        "id": 1 
    },
    "banner_text": {
        "data": "some banner text",
        "id": 2 
    },
    "banner_img": {
        "data": "services.jpg",
        "id": 3 
    }
}
基本上,在我看来,我需要能够输出像
{{banner_heading}}
这样的数据,但是我还需要能够维护id,以便在服务器端更新数据


我不知道如何才能做到这一点,我已经困惑了几个小时,并将非常感谢任何帮助

我将提出一种解决方案,它不需要对原始阵列数据进行分组或处理:

假设我们有这个问题:

 $scope.content = [{ banner_heading: "Services", id: 1}, {banner_text:'some text', id:2}, {banner_img:'service.jpg', id:3}];
我们可以编写一个函数来提取所需内容:

$scope.getData = function(n) {
   // question states lodash is being used
   var row = _.find($scope.content, function(item) {
       return n in item;
   });
   return row[n];
}

$scope.getId = function(n) {
  var row = _.find($scope.content, function(item) {
       return n in item;
   });
   return row.id;
}
在这方面:

{{ getData('banner_text') }}

这里是一个演示:

你能给问题添加你想要的对象的实际JSON吗?@lucuma我不确定你的意思,我在我的上一个代码片段中给出了一个我试图实现的示例,它的格式是否正确?这不是一个代码片段,看起来像是调试工具的输出。这就是你想要的
{'banner_heading':'services',id:1},{'banner_text':'some banner text',id:2},{'banner_img':'services.jpg',id:3}
?你至少能使用标准的javascript符号来定义你想要的对象吗?不,你的例子看起来像是三个不同的对象,我需要将它们都放在一个对象中,这样我就不必使用
ng repeat
Hmm我不知道为什么会返回未定义。请确保传递给getData的字符串是键的extact名称。是的,我…嗯,感到困惑。我希望这能起作用,这是一个伟大而简单的解决方案。我们有些人,它起作用了。但我唯一剩下的问题是,我没有办法获取单个id。我需要能够获取id,以便能够处理PUT请求以编辑每个数据段(标题、文本、图片)