Javascript:如何循环和更改键名?

标签 javascript for-loop

如何更改键名但键入其值?

例如,我存储了这个 json 数据:

{ particles: 
   { name: 'particles',
     values: [ [Object], [Object], [Object], [Object], [Object] ] },
  timestamps: 
   { name: 'timestamps',
     values: [ [Object], [Object], [Object], [Object], [Object] ] } 
}

我将循环此输入并更改 key :

{ particles: 'particle', timestamps: 'timestamp' }

particles更改为particle,将timestamps更改为timestamp

我的尝试:

for (var property in data) {
   stored[data[property]] = stored[property].values;
   stored[property].name = data[property];
}

我只设法更改了存储数据中的name 值,但没有更改key name...

有什么想法吗?

最佳答案

通过获取旧属性值分配新属性,然后删除旧属性。

var data = {
  particles: {
    name: 'particles',
    values: []
  },
  timestamps: {
    name: 'timestamps',
    values: []
  }
}

var newK = {
  particles: 'particle',
  timestamps: 'timestamp'
};

// get all object keys and iterate over them
Object.keys(newK).forEach(function(ele) {
  // assign object property based on old property value
  data[newK[ele]] = data[ele];
  // update name property
  data[newK[ele]].name = newK[ele];
  // delete old object property
  delete data[ele];
})

console.log(data);

关于Javascript:如何循环和更改键名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37982805/

相关文章:

javascript - Redis GET 函数返回未定义

javascript - 将 ViewChild 用于动态元素 - Angular 2 和 ionic 2

ios - 如何仅使用某些边框颜色循环 UIButtons?

python - 了解 Python if 语句中的任何关键字

windows - 批处理文件: GOTO in a FOR loop

java - for 循环中缺少 return 语句

javascript - 如何使用 popmotion pure 从关键帧旋转、平移和缩放矩形?

javascript - 在 JQuery 中删除时间戳的问题

javascript - 在 XPathEvaluator 的对象上使用 setAttribute()

java - Android - 中国生肖应用程序 - 如何攻击这个