javascript : trim all properties of an object

标签 javascript ecmascript-6

<分区>

有没有办法 trim 对象的所有属性?换句话说,我可以改变它吗:

{a: ' a', b: 'b ', c: ' c '}

对此:

{a: 'a', b: 'b', c: 'c'}

我似乎无法映射对象,那么如何将函数应用于所有属性并取回对象?

最佳答案

您可以使用 Object.keys() method 迭代对象属性并更新其值:

Object.keys(obj).forEach(k => obj[k] = obj[k].trim());

演示:

var obj = {
  a: ' a',
  b: 'b ',
  c: ' c '
};

Object.keys(obj).forEach(k => obj[k] = obj[k].trim());
console.log(obj);

编辑:

如果您的对象值可以是其他数据类型(不仅是字符串),您可以添加检查以避免调用.trim() 在非 strings 上。

Object.keys(obj).map(k => obj[k] = typeof obj[k] == 'string' ? obj[k].trim() : obj[k]);

关于javascript : trim all properties of an object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51616152/

相关文章:

javascript - 解析错误,意外标记 Javascript

reactjs - 在客户端 React 组件中导入 npm 模块

javascript - 这个 JS 函数参数语法(具有属性默认值的对象初始化器,类似于 rest/spread 参数)是否有名称和效果?

javascript - 不知道为什么在 AWS ec2 上的 api url 中添加额外的参数 'undefined' ?

javascript - 使用 jQuery .html() 时如何阻止 JavaScript 执行

javascript - div 内的元素不应干扰事件处理程序

javascript - Angular - 计算 2 个范围之和的服务

javascript - Vue.js 中 "mounted"axios 中的意外异步操作

JavaScript 无法选择复选框

javascript - 可以使用变量的值作为函数名来调用函数吗?