javascript - 使用过滤功能更新 JSON 中的子项
问题描述
我有一个 JSON 对象(包含我的扩展程序的设置),我想在需要时更新其中的子项。这是我搜索子项的方式:
function GetAppByName(apps, name) {
return apps.filter(function (app) {
return app.name === name;
});
}
我找到了这种更新子项值的方法,但我不想使用循环来查找它们,
for (var i = 0; i < jsonObj.length; i++) {
if (jsonObj[i].Id === 3) {
jsonObj[i].Username = "Thomas";
break;
}
}
如何使用过滤器或任何没有 for 循环的方式更新 JSON 中的子项?
解决方案
如果你知道项目的索引,你可以做
apps = Object.assign(apps.slice(), {[index]: {...apps[index], Username: "Thomas"}})
查找索引:
apps.findIndex((app) => app.Id === 3);
推荐阅读
- ruby - 来自字符串的 Ruby Acronym Creator
- c++ - 指针或结构的向量?
- c# - 使用正则表达式验证密码
- javascript - 需要帮助在节点中转换具有负指数的大数
- ios - HTTP DELETE 在浏览器中有效,但在 Postman 或 IOS 应用中无效
- python - Flask 登录会话如何工作
- angular - 在模板变量中使用 *ngfor 的值
- swift - 在没有 Apple 开发者帐户的情况下设置 Firebase 电子邮件验证
- c - 关于 pthread_mutex_lock() 函数的使用,哪一项是正确的?
- c++ - 通过模板特化实现条件函数调用