es6中lodash的findIndex

时间:2017-05-07 05:43:36

标签: javascript reactjs ecmascript-6 lodash babel

我总是依赖于lodash的findIndex和splice来重新渲染我的更新数据,我现在想要抛弃lodash,因为我现在正在用babel编译,可以做些什么来改进下面的代码?

onDoneUpdatedUserStatus(user) {

    //this.users means existing array of object of existing users

    const index = findIndex(this.users, { user_id: user.user_id });
    if (index > -1) {
        this.users.splice(index, 1, user);
    }
}

2 个答案:

答案 0 :(得分:1)

您可以将用户ID中的用户Map存储到用户ID而不是数组。然后你只需要写

this.users.delete(user.user_id);

这也会加快您的查询时间。

答案 1 :(得分:0)

这是一个单行:

this.users = this.users.map(oldUser => oldUser.id === user.id ? user : oldUser);