首页 > 解决方案 > 在允许空字符串的同时迭代对象键

问题描述

我正在尝试编写一个函数来修剪对象上每个值的所有值。它工作正常但是当有人添加几个空格时,它被保存为“”,但是我需要它保存为“null”在上面的示例中,当有人添加输入时,我需要电子邮件字段返回为 null的“”,但是它以“”的形式返回

contact: {
  firstName: "John"
  lastName: "Smith"
  homePhone: null
  email: ""
}

Object.keys(contact).forEach(
  k =>
(contact[k] =
  typeof contact[k] == 'string'
    ? contact[k].trim()
    : contact[k])
)

标签: javascriptobject

解决方案


首先检查它是一个字符串,如果是,则修剪它,如果它的长度仍然> 0,则返回修剪后的字符串。

let tidy = x => {
    if (typeof x === "string") {
        x = x.trim();
        if (x.length > 0) {
            return x;
        } else {
            return null;
        }
    } 
    return x;
};
Object.keys(contact).forEach(k => contact[k] = tidy(contact[k]));

推荐阅读