javascript - JavaScript:如何增加对象属性
问题描述
我正在尝试增加 JavaScript 对象的属性。我的代码如下所示
var objVal = { "date" : "2019-07-01", "count" : "0" };
var updateObj = { "date" : "", "count" : Number(count) + 1 };
for (var key in updateObj) {
objVal[key] = updateObj[key];
}
console.log(JSON.stringify(objVal));
我想清空日期并增加count
属性1
。
非常感谢任何建议。
解决方案
您可以使用映射器函数而不是update
对象中的值:
var objVal = {
"date": "2019-07-01",
"count": "0"
};
var updateObj = {
"date": "",
"count": count => Number(count) + 1
};
for (var key in updateObj) {
if (typeof updateObj[key] === 'function') {
objVal[key] = updateObj[key](objVal[key]);
} else {
objVal[key] = updateObj[key];
}
}
console.log(JSON.stringify(objVal));
现在,如果更新对象的属性是一个函数,这将使用旧值作为参数调用它,并使用它的返回更新对象。
如果非函数作为更新对象的键存在,则此代码的行为将与您的相同。
如果您想将 的属性更改objVal
为函数,则需要在其中放置一个函数返回函数updateObj
推荐阅读
- authentication - 如何在asp.net核心的休息请求中发送jwt身份验证令牌
- javascript - HTML5 选择要排列的多个值
- ios - Swift 字符串插值打印之间的区别
- c++ - C ++ Opencv:分配值后打印Mat时出错
- android - 如何设置 React-native 选择器项目的样式以包装冗长的文本?
- mongo-cxx-driver - mongo-cxx-driver 无法迭代视图
- groovy - 如何使用 JMeter 读取和检查外部服务器上的文件内容?
- macos - 如何以编程方式同时按“shift”+“command”+“3”
- objective-c - 当我将头文件导入单元测试类时,为什么 Xcode 返回错误“找不到文件”?
- android - 在自定义列表视图适配器(kotlin)中设置默认突出显示的项目