当前位置: 首页 > 知识库问答 >
问题:

正规化对象数组&按id键

谢涵煦
2023-03-14

我正在寻找规范化的一些数据从API返回。已经在项目中使用下划线。

var res = [{
    badge_no: 123,
    id: 1,
    name: 'bob'
  }, {
    badge_no: 456,
    id: 2,
    name: 'bill'
  }, {
    badge_no: 789,
    id: 3,
    name: 'ben'
  },
  // etc
];

我希望创建一个如下所示的数据结构:

var normalisedRes = [{
  1: {
    badge_no: 123,
    id: 1,
    name: 'bob'
  }
}, {
  2: {
    badge_no: 456,
    id: 2,
    name: 'bill'
  }
}, {
  3: {
    badge_no: 789,
    id: 3,
    name: 'ben'
  }
}];
{ '1': {data}, '2':{data}, '3':{data} }

再次感谢所有的答案!

共有1个答案

贝财
2023-03-14

您可以将数组#map与对象一起使用,并使用ID设置键,然后返回对象。

var array = [{ badge_no: 123, id: 1, name: 'bob' }, { badge_no: 456, id: 2, name: 'bill' }, { badge_no: 789, id: 3, name: 'ben' }],
    result = array.map(function (a) {
        var o = {};
        o[a.id] = a;
        return o;
   });

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
 类似资料:
  • 问题内容: 我有一个数组: 我无法更改数组的结构。我正在传递ID为,我想获取数组中的该对象。 如何在JavaScript或jQuery中做到这一点? 问题答案: 使用方法: 从MDN: 如果数组中的元素满足提供的测试功能,则该方法返回数组中的第一个值。否则返回。 如果要查找其 索引 ,请使用: 从MDN: 该方法返回满足提供的测试功能的数组中第一个元素的索引。否则返回-1。 如果要获取匹配元素的数

  • 问题内容: 用JavaScript合并两个数组的正确方法是什么? 我有两个数组(例如): 我希望能够得到类似以下的结果: 在基于“ id”字段将两个数组连接在一起的地方,仅添加了额外的数据。 我试图用它来做,但是它只是将第二个数组中的值覆盖到第一个数组中 问题答案: 这应该可以解决问题: 假定a1中第二个对象的id应该为2而不是“ 2”

  • 问题内容: 我遇到了一个mongo问题。我想知道是否有办法做一个蒙戈控制台命令而不是多个以下和电话。 我想用这个新的数组项更新对象 我使用了此方法,它是有限的,如果它已经存在,它不会将一个项目插入数组,但不会基于标识符更新项目。在这种情况下,我真的很想根据来更新此条目。 这给了我: 当我真正想要的是: 问题答案: 您可以使用位置运算符执行此操作: 的在更新对象充当的第一个元素的占位符到查询选择器相

  • 我有两个RDDs。在Spark scala中,如果event1001RDD和event2009RDD具有相同的id,我该如何连接它们? Val事件1001RDD:模式RDD=[事件类型,id,位置,日期1] val event 2009 rdd:schemaRDD =[事件类型,id,日期1,日期2] 预期结果将是:(唯一)(按 id 排序) [事件类型,ID,1001 的位置,1001 的日期1

  • 有人知道一种方法(如果可能的话也可以使用lodash)通过对象键对对象数组进行分组,然后根据分组创建新的对象数组吗?例如,我有一个汽车对象数组: 我想制作一个由分组的新汽车对象数组:

  • 我已经设法编写了一个使用Java8Streams API的解决方案,该解决方案首先按对象路由的值对其列表进行分组,然后对每组中的对象数进行计数。它返回映射路由->long。代码如下: 和路由类: 应转换为: 请注意,映射的键数为2条路由,它是lastUpdated值最大的一条。