javascript - 为什么我的 JavaScript 对象函数将其参数名称分配为键而不是参数名称?
问题描述
我对 Javascript 对象相当陌生。我已经定义了一个非破坏性函数来更新这样的对象:
function updateObjectWithKeyAndValue(object, key, value) {
return Object.assign({}, object, { key: value });
}
let object = {a: 1};
console.log(updateObjectWithKeyAndValue(object, 'b', 2));
console.log(object);
我得到函数的返回值{ a: 1, key: 2 }
而不是{ a: 1, b: 2 }
. 有什么我做的不对吗?谢谢...
解决方案
{ key: value }
是一个具有名为“key”的属性的对象。要根据变量中的值命名属性key
,请使用计算属性名称:
{ [key]: value }
如果你的 JavaScript 环境支持对象传播,那么整个事情可以写成:
return { ...object, [key]: value };
推荐阅读
- asp.net-core - 如何在 ASP.NET Core 的 ActionExecutingContext 中检查 AllowAnonymousAttribute?
- android - Android虚拟模拟器卡在加载 - 白/黑屏
- r - 将reduce应用于R数据框中一列的每一行,包含一个列表
- python - 对于包含多个 MP4 文件的文件来说,好的分隔符是什么样的?
- mysql - Mysql加入json值问题
- c - 将带有指针的简短 ASM 片段翻译成 C 代码
- reactjs - 你如何在 React 中对 Realm-Web 中的查询结果进行排序?
- reactjs - Laravel-echo 显示 401(未经授权)的私人频道,除了一位用户
- gradle - 如何获取 gradle SourceSet 的目录?
- c++ - C++ STL 数组的迭代器大小