json - 如何使用数组中存储的属性名称修改 javascript 对象

标签 json node.js

我正在使用 Node.js,并且我有一个 jsonFile,它允许我创建一个对象:

var dateFile = './Dictionnary/lastUpdate.json';
var dateObj = jsonfile.readFileSync(dateFile);

对象是这个:

var dateObj = {
  "l2D": "2018-07-10T08:45:03.000Z",
  "CU": "2018-07-10T08:45:03.000Z",
  "l2G": "2018-07-10T08:45:03.000Z",
  "la1": "2018-07-10T08:45:03.000Z",
  "la2": "2018-07-10T08:45:03.000Z",
  "lru": "2018-07-10T08:45:03.000Z",
  "nu3": "2018-07-10T08:45:03.000Z",
  "DictionnaryTime": "2018-07-30T07:59:47.000Z"
}

我想使用如下脚本更新属性的值:

var citiesDictNames = ['CU', 'l2D', 'l2G', 'la1', 'la2', 'lru', 'nu3'];

for (i = 0; i < csvCitiesNames.length; i++) {
  newDate = function(...);
  var name = citiesDictNames[i];
  dateObj.name = newDate;
  jsonfile.writeFile(dateFile, dateObj, function(err) {
    if (err) {
      console.error(err);
    } else {
      console.log('LastModified Date updated');
    }
  });
}

但结果是这个对象:

var dateObj = {
  "l2D": "2018-07-10T08:45:03.000Z",
  "CU": "2018-07-10T08:45:03.000Z",
  "l2G": "2018-07-10T08:45:03.000Z",
  "la1": "2018-07-10T08:45:03.000Z",
  "la2": "2018-07-10T08:45:03.000Z",
  "lru": "2018-07-10T08:45:03.000Z",
  "nu3": "2018-07-10T08:45:03.000Z",
  "DictionnaryTime": "2018-07-30T07:59:47.000Z",
  "name": "2018-07-04T16:12:43.000Z",
}

当我用 dateObj.l2D 或其他有效的值替换 dateObj.name 时,但当值位于 arrayList 中时,我不会成功。

最佳答案

只需使用dateObj[name] 访问语法。

Javascript Property Accessors

关于json - 如何使用数组中存储的属性名称修改 javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51540096/

相关文章:

javascript - 从对象获取 JavaScript 数组

javascript - angularjs 国家代码通过 $http 请求从 jsonfile 中查找

ajax - json、ajax 和 jQuery 出现无法解释的错误

javascript - Angular2 快速入门 - 'Cannot Get' 消息

javascript - Node.js 异步数组迭代

node.js - Azure IOT 集线器设备 "Suspension"

javascript - WordPress 使用 json_encode 将帖子从 php 手动发送到 js,并将帖子 ID 发送到 div

javascript - 从redis集中获取随机元素而不重复

node.js - this.emit 不工作但 self.emit 工作。为什么?

javascript - 谷歌浏览器扩展不显示弹出窗口