javascript - 替换 javascript 中对象数组中的键

标签 javascript

我想将对象键中的下划线替换为 USER_NAME 到 USER NAME 等空格。我尝试了以下方法,但不知何故它不起作用。

var link = [{
  "USER_NAME": "abc",
  "USER_DOB": "10/25/1985",
}, {
  "USER_NAME": "xyz",
  "USER_DOB": "10/25/1986"
}];
var html = '';
for (var i = 0; i < link.length; i++) {
  var tableHeaders = Object.keys(link[i]);

  for (var j = 0; j < tableHeaders.length; j++) {
    var formattedStr = tableHeaders[j].replace(/_/g, ' ');
    Object.keys(link[i])[j] = formattedStr;
    html += Object.keys(link[i])[j] + ' -- ' + formattedStr + '<br /><br />';
  }
}

document.getElementById('test').innerHTML = html;

链接到 JS Fiddle - https://jsfiddle.net/4ak6zjLd/3/

如果我在这里遗漏了什么,有人可以告诉我吗?

最佳答案

您可以使用此 ES6 函数对所有对象键应用替换:

function replaceKeys(obj, find, replace) {
  return Object.keys(obj).reduce (
    (acc, key) => Object.assign(acc, { [key.replace(find, replace)]: obj[key] }), {});
}
  
// sample data
var link = [{
  "USER_NAME": "abc",
  "USER_DOB": "10/25/1985",
}, {
  "USER_NAME": "xyz",
  "USER_DOB": "10/25/1986"
}];

// replace the underscores in each of the objects
link = link.map(obj => replaceKeys(obj, /_/g, ' '));

// output result
console.log(link);

关于javascript - 替换 javascript 中对象数组中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39307613/

相关文章:

javascript - Webpack 防止某些带有 css 模块的文件发出 css

javascript - Expect 测试不适用于 ES6/ES2015 Set 对象

javascript - 打印页面时分页符、边框等 CSS 不起作用(Angular 5)

javascript - Django 无法在设置中导入 ckeditor 但可以在 shell 中导入?

javascript - 合并事件以使用 RxJs 和 Angular 执行异步工作

javascript - AngularJs 测试。放置模板的位置

javascript - 单击链接时显示和隐藏 div

javascript - 如何在ng-repeat中水平添加数据

javascript - 渲染性能 - 图像与 css 渐变或带边框的框阴影?

javascript - 如何使用shell在gulp中读取?