从对象数组中仅创建一个对象,以在redux reducer中使用

约翰·莱诺(Johan Leino)

我有一个像这样的对象数组

[
  {id: example1, count: 2}, {id: example2, count:2}
]

我想变成一个像

{
  example1: { id: example1, count: 2},
  example2: { id: example2, count: 2},
}

...等等。

这应该在使用es6的redux reducer中使用,因此,如果其中有可用或lodash可用。

回答:

为了清楚起见,这就是我最终在@ james-emanon的建议中所做的事情。当然,这只是使用reduce的问题。

        case ActionTypes.FETCH_SNAPSHOTS_SUCCESS:
          let snapshots = action.payload.reduce((p, c) =>
            Object.assign({},
              p, {
                [c.id]: c
              }
            ), {}
          )

          return Object.assign({},
            state, {
              isFetching: false,
              lastUpdated: action.meta.receivedAt
            },
            snapshots
          )
詹姆斯·埃玛农

这样的事情怎么样?(使用es6约定)

// assuming you action will pass an object like this
var a = [
  {id: 'example1', count: 2}, {id: 'example2', count:2}
]


   // snippet from reducer
   case TYPE.SOME_CASE_CONSTANT: 
   let newObj = action.yourArrayofObj
                 .reduce((p,c) => {
                     return {...p, [c.id]: c}
                 }, {})
   return {
     ...state,
     newObj
   }

或者

action.yourArrayofObj
                     .reduce((p,c) => {
                             p[c.id] = c
                             return p 
                    }, {})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从对象数组中仅创建一个对象,以在redux reducer中使用

来自分类Dev

在reducer(redux)中使用拼接

来自分类Dev

使用jq过滤内部数组中仅包含一个最大对象的JSON外部对象

来自分类Dev

使用underscore.js从对象/数组中仅检索一个字段

来自分类Dev

使用d3.scale.linear在Javascript对象数组中仅缩放一个值

来自分类Dev

如何使用for和for in语句在Javascript对象数组中仅获取一个值?

来自分类Dev

使用Undescore从对象属性创建一个大数组

来自分类Dev

使用每个数组创建一个新对象

来自分类Dev

如何使用一个共享密钥从两个对象数组创建一个对象数组 - JavaScript

来自分类Dev

使用一个值从数组中删除对象

来自分类Dev

使用 lodash 从数组中删除一个对象

来自分类Dev

我无法在Redux Reducer中使用state.filter

来自分类Dev

如何在Reducer中使用数组更新多个值

来自分类Dev

使用_.differenceBy从另一个对象数组中删除一个对象数组中的项

来自分类Dev

在另一个.cpp文件中使用main.cpp中创建的类型的对象

来自分类Dev

在java中创建一个通用对象并使用它来创建另一个通用对象

来自分类Dev

如何使用另一个对象数组中的一个对象更改对象数组中的对象值?

来自分类Dev

使用JavaScript中的循环从一个对象创建两个对象时出错

来自分类Dev

API请求返回两个对象:如何使用一个Reducer在Redux中分离状态?

来自分类Dev

计算json数组对象并使用SUM结果创建一个新数组

来自分类Dev

如何使用键从json数组中获取json对象属于一个json对象

来自分类Dev

JavaScript:创建函数,该函数使用回调返回一个对象,该对象的键与值数组中的元素匹配

来自分类Dev

为什么在ruby on rails的controller类的new和create函数中创建两个模型对象,而不是仅使用一个?

来自分类Dev

如果对象键存在于另一个数组中,则在重新选择选择器中使用键控对象扩充对象

来自分类Dev

使用 forEach 循环从 Firebase 创建一个包含指定键和值的对象数组

来自分类Dev

在另一个对象中使用对象值

来自分类Dev

如何仅使用一个键-值将对象列表保存到Redis中?

来自分类Dev

在一个线程中创建一个对象,然后使用std :: atomic访问另一个对象

来自分类Dev

如何在Scalatest中使用forAll仅生成生成器的一个对象?

Related 相关文章

  1. 1

    从对象数组中仅创建一个对象,以在redux reducer中使用

  2. 2

    在reducer(redux)中使用拼接

  3. 3

    使用jq过滤内部数组中仅包含一个最大对象的JSON外部对象

  4. 4

    使用underscore.js从对象/数组中仅检索一个字段

  5. 5

    使用d3.scale.linear在Javascript对象数组中仅缩放一个值

  6. 6

    如何使用for和for in语句在Javascript对象数组中仅获取一个值?

  7. 7

    使用Undescore从对象属性创建一个大数组

  8. 8

    使用每个数组创建一个新对象

  9. 9

    如何使用一个共享密钥从两个对象数组创建一个对象数组 - JavaScript

  10. 10

    使用一个值从数组中删除对象

  11. 11

    使用 lodash 从数组中删除一个对象

  12. 12

    我无法在Redux Reducer中使用state.filter

  13. 13

    如何在Reducer中使用数组更新多个值

  14. 14

    使用_.differenceBy从另一个对象数组中删除一个对象数组中的项

  15. 15

    在另一个.cpp文件中使用main.cpp中创建的类型的对象

  16. 16

    在java中创建一个通用对象并使用它来创建另一个通用对象

  17. 17

    如何使用另一个对象数组中的一个对象更改对象数组中的对象值?

  18. 18

    使用JavaScript中的循环从一个对象创建两个对象时出错

  19. 19

    API请求返回两个对象:如何使用一个Reducer在Redux中分离状态?

  20. 20

    计算json数组对象并使用SUM结果创建一个新数组

  21. 21

    如何使用键从json数组中获取json对象属于一个json对象

  22. 22

    JavaScript:创建函数,该函数使用回调返回一个对象,该对象的键与值数组中的元素匹配

  23. 23

    为什么在ruby on rails的controller类的new和create函数中创建两个模型对象,而不是仅使用一个?

  24. 24

    如果对象键存在于另一个数组中,则在重新选择选择器中使用键控对象扩充对象

  25. 25

    使用 forEach 循环从 Firebase 创建一个包含指定键和值的对象数组

  26. 26

    在另一个对象中使用对象值

  27. 27

    如何仅使用一个键-值将对象列表保存到Redis中?

  28. 28

    在一个线程中创建一个对象,然后使用std :: atomic访问另一个对象

  29. 29

    如何在Scalatest中使用forAll仅生成生成器的一个对象?

热门标签

归档