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

按字母将对象数组转换为字典[副本]

曹伟泽
2023-03-14

我有一个对象数组,看起来如下所示:

let stuff = [
  {
    "id": "48202847",
    "name": "Doe"
  },
  {
    "id": "17508",
    "name": "Marie"
  },
  {
    "id": "175796",
    "name": "Robert"
  },
  {
    "id": "175796",
    "name": "Ronald"
  },
]

我想要的是一本像这样的字典:

{
  "D": [{"id": "48202847", "name": "Doe"}],
  "M": [{"id": "17508", "name": "Marie"}],
  "R": [{"id": "175796", "name": "Robert"}, {"id": "175796", "name": "Ronald"}]
}

注意名字以“R”开头的所有人是如何在一个键下列出的。

这是我的函数,它创建了一个以人名为键的字典:

const byId = (array) =>
  array.reduce((obj, item) => {
    obj[item.name] = item
    return obj
  }, {})

但这显然没有达到我想要的效果。我确实有一些想法如何使这成为可能,但他们是极端的遗产,我很想知道如何做这件事正确。感谢任何帮助!

共有1个答案

谷隐水
2023-03-14

您需要第一个字符、大写和一个数组来收集对象。

js lang-js prettyprint-override">const byId = array =>
    array.reduce((obj, item) => {
        var key = item.name[0].toUpperCase(); // take first character, uppercase
        obj[key] = obj[key] || [];            // create array if not exists
        obj[key].push(item);                  // push item
        return obj
    }, {});

let stuff = [{ id: "48202847", name: "Doe" }, { id: "17508", name: "Marie" }, { id: "175796", name: "Robert" }, { id: "175796", name: "Ronald" }],
    result = byId(stuff)
  
console.log(result);
 类似资料:
  • 问题内容: 目前,我有这本词典,使用印刷: 当我这样做时: 我收到此错误: 问题答案: 如果您可以在json中使用不可打印的符号,请添加到通话中。 如果是假的,那么返回值将是一个 实例受到正常的Python来 强制规则,而不是被转义为ASCII 。

  • 所以我是计算机科学的新手,我们被要求做的一件事是尝试创建一个程序,首先将用户输入的一个单词转换成一个数字串,a=1,b=2,z=26等等,还有一些其他的事情,因为它们是扩展,我现在不想讨论。诚然,她说她不介意我们完成它,因为这是我们今天的第一节java课程。 有鉴于此,有人能给我一些关于如何做到这一点的建议吗?我不想让一段完整的代码完全做到这一点,因为我需要学习,因此非常感谢指导之手。到目前为止,

  • 问题内容: 我正在寻找一种优雅的方式来获取数据,该数据使用具有一些嵌套dict和列表(例如javascript样式对象语法)的dict进行属性访问。 例如: 应该以这种方式访问​​: 我认为,没有递归是不可能的,但是获得字典对象样式的一种好方法是什么? 问题答案: 更新:在Python 2.6及更高版本中,请考虑namedtuple数据结构是否满足你的需求: 备选方案(原始答案内容)为: 然后,你

  • 问题内容: 我正在尝试将数据从简单的对象图转换为字典。我不需要类型信息或方法,也不需要能够再次将其转换回对象。 我发现了有关从对象的字段创建字典的问题,但它不是递归执行的。 对于python来说相对较新,我担心我的解决方案可能很丑陋,或者是非Python的,或者以某种晦涩的方式破坏了,或者仅仅是普通的NIH。 我的第一次尝试似乎一直有效,直到我使用列表和字典对其进行尝试为止,并且似乎更容易的是仅检

  • 问题内容: 我有一些字典想要转换为JSON。我的对象是类型,并且最终要得到这样的示例: 这是我正在尝试的方法,但是编译器不喜欢我的声明: 我怎样才能做到这一点? 问题答案: 一种简单的实现方法是扩展CollectionType。 使用可选的绑定和向下转换,然后序列化为数据,然后转换为字符串。 输出:

  • 我有一个pandas数据框架,其中混合了数据类型(DType),我希望将其转换为numpy结构化数组(或记录数组,在本例中基本相同)。对于纯数字数据帧,使用方法很容易做到这一点。我还需要将pandas列的数据类型转换为字符串而不是对象,以便使用numpy方法,该方法将数字和字符串输出到二进制文件,但不会输出对象。 简而言之,我需要将带有的panda列转换为字符串或unicode数据类型的numpy