在提供给 Object.asassign 的对象中使用变量作为键
Using variables as keys in Object supplied to Object.assign
我正在使用Object.assign 从另一个映射获取具有添加属性的对象的新副本。这通常和 Object.assign(existingObject, {"new_key", "new_value"} 一样简单,但是当 "new_key" 以变量的形式出现时,我必须使用临时变量。如何避免这种情况?
一个简单的例子:
function demo(inputKey, inputValue) {
let data = {
"existing_key": "existing_value"
}
let newData = {}
newData[inputKey] = inputValue
return Object.assign(data, newData)
}
//demo("new_key", "new_value")
//returns Object {existing_key: "existing_value", new_key: "new_value"}
有关如何避免临时 newData 变量的任何技巧将不胜感激!
(我在 Redux 中使用化简器做了很多工作,这对于复制对象而不是改变它们非常有用。
您可以在 ES2015 中使用计算的属性名称执行此操作:
return Object.assign(data, {[inputKey]: inputValue})
如果用
方括号将变量括起来,则可以强制将变量用作对象文字中的键:
function demo(inputKey, inputValue) {
let data = {
"existing_key": "existing_value"
}
let newData = {[inputKey] : inputValue}
//newData[inputKey] = inputValue
return Object.assign(data, newData)
}
console.log( demo('one',42) )
您已经在创建新的对象数据,无需创建另一个对象数据。
function demo(inputKey, inputValue) {
let data = {
"existing_key": "existing_value"
}
data[inputKey] = inputValue;
return data;
}
相关文章:
- 替换另一个变量对象中的变量值
- 如何从表单变量对象中获取特定的from属性
- 变量/对象是否按值传递,为什么我不能在 javascript 中使用变量更改对象的属性
- 执行上下文和变量对象在 JavaScript 中实际上是一回事吗?
- 如何将变量对象传递到多个javascript弹出窗体
- 如何将javascript变量/对象从一个页面传递到另一个页面
- 在具有递增的变量/对象中存储和控制传单 GeoJSON 图层
- 在回调中重用变量/对象
- 给一个有1个变量/对象的函数给定几个参数
- 使用单词'英语'因为变量/对象名称在javascript中不起作用
- 如何访问变量对象中的数据
- 使用onclick调用变量对象中的函数
- 使用Underscore JS部分和for循环的未定义变量对象
- 如何查看我的变量对象
- 变量对象属性名称作为javascript中的参数
- 从变量对象中移除DOM元素,以便将其发布到服务器
- 根据变量对象是否等于“true”输出内容
- 如何连接(变量+对象键名)以获得点表示法的对象值
- 为什么在ES5中将变量对象改为词法环境
- 动态引用变量(对象)