原先在 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 增,同理改删查也都是这样的操作。
烙印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)
添加回答
举报
0/150
提交
取消