gpt4 book ai didi

javascript - 如何在 javascript 中替换数组中的特定对象?

转载 作者:数据小太阳 更新时间:2023-10-29 03:59:10 24 4
gpt4 key购买 nike

我有一组用户,我想更新其中一个用户。

users = [
{userId: 23, userName:"foo"},
{userId: 34, userName:"wrong"},
{userId: 45, userName:"baz"}
{userId: 56, userName:"..."},
]

updatedUser = {
userId: 34,
userName: bar
}

我正在使用 underscorejs。我认为最简单的方法是找到要更新的用户的索引,然后将该用户的值设置为我更新的值。不幸的是,下划线的 indexOf函数不接受属性,只接受值。要使用它,我必须首先使用 findWhere然后将返回的内容传递给 indexOf:

var valueOfUpdatedUser = _.findWhere(users, { userId: updatedUser.userId })
var indexOfUpdatedUser = _.indexOf(users, valueOfUpdatedUser)
users[indexOfUpdatedUser] = updatedUser;

第二种方法是使用 reject删除匹配的用户,然后将我更新的用户推送到数组。

肯定有更好、更简单的方法吗?

最佳答案

您可以使用 extendfindWhere 之后。它在技术上与用另一个实例完全替换对象不同,但它消除了数组上的额外循环:

_.extend(_.findWhere(users, { userId: updatedUser.userId }), updatedUser);

如果仍然不能令人满意,那么最好的办法可能是手动迭代。

我特意将“对象属性由用户 ID 键控”方法排除在讨论之外,因为在实践中,手头有一个数组并不少见(例如,用户数组由 API 检索)。

关于javascript - 如何在 javascript 中替换数组中的特定对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23642032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com