javascript - 将对象数组中的对象展平的递归函数

标签 javascript reactjs recursion flatten

所以我收到了一组这样的对象:

[
  {
    accountName: {
      type: 'link',
      value: {
        value: '1234567890123456789',
        to: '/q?Id=1237896540789654',
      },
    },
    bank: {
      type: 'text',
      value: 'Foo Bank',
    },
  },
  {
    accountName: {
      type: 'link',
      value: {
        value: '9234567890123456789',
        to: '/q?Id=9234567890123456789',
      },
    },
    bank: {
      type: 'text',
      value: 'Foo Bank',
    },
  },
];

我需要这样的输出:

[
  {
    accountName: '1234567890123456789', 
    bank: 'Foo Bank'
  },
  {
    accountName: '9234567890123456789', 
    bank: 'Foo Bank'
  }
]

我该如何解决? 对象数组并不总是具有相同的形状,因此我需要一个递归函数来保存原始对象的第一个键并将该值展平,直到它不再是一个对象。

最佳答案

有许多库可能会有所帮助,但也许像这样的东西会起作用?

results.map(result => ({
    accountName: result.accountName.value.value,
    bank: result.bank.value
}));

除了你说“对象数组并不总是具有相同的形状”,但我不确定如何解决这个问题。你说了一些递归搜索,这是否意味着在对象中寻找最深的“值(value)”?

关于javascript - 将对象数组中的对象展平的递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58613232/

相关文章:

javascript - Go 与 JavaScript JSON 解析

javascript - Vuejs 输入绑定(bind)与计算属性中的附加属性

reactjs - 防止子元素不必要的重新渲染

Python递归合并排序不起作用

python - 如何将 dict 转换为递归 defaultdict 并加载 JSON?

javascript - 用于检查 jmeter 响应文本中是否存在响应 A 或 B 的 Bean shell 脚本

javascript - 使用js更改css的Polymer方式

javascript - 在react中使用json创建带有表标题的表

reactjs - Material UI slider - 标签格式

python - 递归错误: I'm looking for a way to reduce the number of the loop