【问题标题】:How to trim both key and value from an array of objects using lodash如何使用 lodash 从对象数组中修剪键和值
【发布时间】:2021-10-08 03:41:57
【问题描述】:

我有一个对象数组,如下所示。

 {
    "Id": 11,
    "name ": "xxN "
  }

如何使用 lodash trim 方法来修剪键和值。

 {
    "Id": 11,
    "name": "xxN"
  }

预期:

【问题讨论】:

  • 您的预期结果是什么?
  • 添加了预期的部分
  • 这里有什么区别?
  • 在“name”之后:“xxN”这是我不想要的空间

标签: javascript node.js lodash


【解决方案1】:

一定要使用 Lodash 吗?使用原生 JavaScript:

result = Object.fromEntries(Object.entries(data).map(([key, value]) => 
    [key.trim(), typeof value == 'string' ? value.trim() : value]))

【讨论】:

  • 看起来很有希望。但是我在我的项目中使用节点 10 并得到TypeError: Object.fromEntries is not a function,这个错误
  • @Nick 节点 10 不支持 Object.fromEntries。您必须升级到节点 14。
  • 是的@Spectric,这就是我寻找 lodash 的原因。无法将项目升级到节点 14。一些事情可能会中断。 ?
  • @Spectric 我认为他根本无法升级。
【解决方案2】:

为了完整起见,这是一个使用 _.transform() 的 Lodash 解决方案

const obj = {
  "Id": 11,
  "name ": "xxN "
}

const transformed = _.transform(obj, (result, value, key) => {
  result[key.trim()] = typeof value === "string" ? value.trim() : value
})

console.log(transformed)
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>

这有一个额外的好处,就是生成一个与原始原型相同的新对象,这可能会也可能不会很方便。

【讨论】:

    【解决方案3】:

    使用 lodash trim 方法

    const arr = [
      {
        Id: 11,
        "name ": "xxN ",
      },
      {
        Id: 12,
        "name ": " yyK ",
      },
    ];
    
    const result = arr.map((o) =>
      Object.fromEntries(
        Object.entries(o).map(([k, v]) => [k, typeof v === "string" ? _.trim(v) : v])
      )
    );
    
    console.log(result);
    <script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>

    【讨论】:

      【解决方案4】:

      Vanilla js 如果你有支持它会更好,但有 lodash

      var trimmed = _.fromPairs(
        _.map(input, (value, key) => [
          _.trim(key),
          typeof value === "string" ? _.trim(value) : value
        ])
      );
      

      【讨论】:

      • 你需要_.toPairs吗? _.map() 不能处理对象吗?
      • @Barmar 好电话
      猜你喜欢
      • 1970-01-01
      • 2018-05-13
      • 1970-01-01
      • 2017-02-08
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      • 2023-01-29
      • 1970-01-01
      相关资源
      最近更新 更多