【问题标题】:Clean way of removing last & from a string in javascript从javascript中的字符串中删除最后一个&的干净方法
【发布时间】:2020-11-02 02:15:03
【问题描述】:

以下是对我来说运行良好的代码,我可以看到这里唯一的问题是我需要在我的字符串上调用 slice(0, -1) 以从最后一个删除 &。让我知道是否有更好更有效的方式来写这个或者这个也是可以接受的。

提前致谢。

代码-

const object1 = {
  a: 'somestring',
  b: 42,
  c: '',
  d: "test1",
  e: null,
  f: 'test2'
};

let str = '';
for (const [key, value] of Object.entries(object1)) {
  str += `${key}=${value}&`
}

const paramStr = str.slice(0, -1);

console.log(paramStr);

【问题讨论】:

标签: javascript reactjs ecmascript-6 slice


【解决方案1】:

我认为slice 很好。还有许多其他方法可以让你接近没有它。例如,您可以map,然后使用.join('&')

const object1 = {
  a: 'somestring',
  b: 42,
  c: '',
  d: "test1",
  e: null,
  f: 'test2'
};

console.log(Object.entries(object1).map(([k,v]) => `${k}=${v}`).join('&'))

【讨论】:

  • 谢谢解答
【解决方案2】:

只需mapjoin,就可以去掉尾随的&

let paramStr = Object.entries(object1).map(([key, value]) => key + "=" + value).join("&");

演示:

const object1 = {
  a: 'somestring',
  b: 42,
  c: '',
  d: "test1",
  e: null,
  f: 'test2'
};

let paramStr = Object.entries(object1).map(([key, value]) => key + "=" + value).join("&");

console.log(paramStr);

【讨论】:

  • 非常感谢您的回答..我会在 4 分钟后接受它 :) .. 不知道为什么有人反对这个
【解决方案3】:

如果你使用lodash,你可以考虑使用trimEnd函数。

如果您将字符串末尾的指定字符作为第二个参数传递,它可以删除它们。

例如:

const paramStr = _.trimEnd('a=somestring&b=42&c=&d=test1&e=null&f=test2&', '&');

console.log(paramStr);
// "a=somestring&b=42&c=&d=test1&e=null&f=test2"
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.19/lodash.min.js"></script>

【讨论】:

    猜你喜欢
    • 2011-03-12
    • 2015-06-19
    • 1970-01-01
    • 2017-08-19
    • 1970-01-01
    • 2020-03-12
    相关资源
    最近更新 更多