我在JS对象(不是数组)中有一个users
的索引列表。它是React状态的一部分。
{
1: { id: 1, name: "John" }
2: { id: 2, name: "Jim" }
3: { id: 3, name: "James" }
}
执行以下操作的最佳实践:
没有任何不可变的帮助器。我使用了Coffeescript和下划线(所以_.extend是可以的…)。
谢谢。
发布于 2016-04-15 23:07:29
这就是我要做的
依次添加:var newUsers = _.extend({}, users, { 4: { id: 4, ... } })
newUsers['2'].name = 'Peter'
、var newUsers = _.extend({}, users)
和var newUsers = _.extend({}, users)
发布于 2016-04-15 23:08:47
如果您没有使用Flux,那么可以使用this.setState()来更新状态对象。
delUser(id) {
const users = this.state.users;
delete users[id];
this.setState(users);
}
addChangeUser(id, name) {
const users = this.state.users;
users[id] = {id: id, name: name};
this.setState(users);
}
然后,您可以使用以下代码执行测试用例:
addChangeUser(4, 'Jane);
addChangeUser(2, 'Peter');
delUser(2);
发布于 2016-05-02 19:33:19
除了_.extend之外,您还可以使用Map来存储user
let user = new Map();
user.set(4, { id: 4, name: "Jane" }); //adds with id (4) as key
user.myMap.set(2, { id: 2, name: "Peter" }); // set user #2 to "Peter"
user.delete(3); //deletes user with id 3
https://stackoverflow.com/questions/36650570
复制相似问题