为了账号安全,请及时绑定邮箱和手机立即绑定

用对象来储存数据时如何快速操作

用对象来储存数据时如何快速操作

萧十郎 2019-03-06 14:14:44
原先在 react 的 reducer 中储存的数据都是以 JSON 的格式来储存的,现在想换成用 Object 的储存方式来提高操作时的速度,不知道是否有一定的可行性?如果确实可行,又如何快速的操作 reducer 上的数据呢?// 原先的数据结构[{    id: xxx,    name: xx,    age: x}, {    // ..}]// 改变后的数据格式{    xxx: {// 这里的 key值 xxx 就是 id         id: xxx,        name: xx,        age: x    },    //...}原先对于数据 JSON 的操作上:增:Array.prototype.concat、Array.prototype.push...改:Array.prototype.map、Array.prototype.filter...删: Array.prototype.slice、Array.prototype.map...查: Array.prototype.map...更改后的字典数据操作:增:??改:??删:??查:Object[key]取值我还是补充点内容吧// 原先store的设计可能是这样的:{  user: [{id: xxx, name: xx, age: x}]}// 这样我对于user的`增删改查`都可以使用数组提供的方法来操作。// 更改后的store设计:{  user: {    xxx: {      id: xxx,      name: xx,      age: x    }  }}// 改完之后对数据的 `改删查` 就可以避免像数组一样,每次都要去遍历。// 所以我要问的是, **对于对象的增删改查有没有一种快速操作的方法**,这里必须要考虑操作之后的指针问题
查看完整描述

2 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

用 object 好处比较多,最突出的应该就是利于扩展,如果日后希望给 store 多一个字段,object 可以轻松扩展而 array 可能要费一番功夫。

对于 store 里面具体的内容,一般来说都是以一个 key 作为最小操作对象,不会操作嵌套过深的数据。key 的结果一般也都是 string 或者 array,当然也是按照对应的操作增删改查了,增也只是给 object 下某一个 key 的 array 增,同理改删查也都是这样的操作。


查看完整回答
反对 回复 2019-03-21
?
烙印99

TA贡献1829条经验 获得超13个赞

两种都是json吧,不信你拿json格式化工具试试

在项目中要改,估计redcuer,还有mapStateToProps都要改了。

依你的数据将数据转对象的方法:


let oldArray = [

  {id: 1, field_id: 10, data: "215", member_id: 101},

  {id: 12, field_id: 2, data: "215212", member_id: 101},

  {id: 2, field_id: 31, data: "123", member_id: 101}

];


let obj = {};


for(const o of oldArray) {

  obj[o.id] = o;

}


console.log(obj)


查看完整回答
反对 回复 2019-03-21
  • 2 回答
  • 0 关注
  • 499 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信