首页 > 解决方案 > 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

非常感谢任何建议。

标签: javascript

解决方案


您可以使用映射器函数而不是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


推荐阅读