【问题标题】:Concatenate for...in into single string将 for...in 连接成单个字符串
【发布时间】:2023-01-13 06:41:54
【问题描述】:

我有一个 URL 参数对象,我最初使用此方法将其附加到表单,但我试图对其进行调整以创建一个从每个输入值连接到 then 的单个字符串。

我这里有这段代码,它创建输入并将它们添加到表单顶部:

for (property in parameters) {
    $('<input>', {
        type: 'hidden',
        id: `${property}`,
        class: 'urlparameter',
        name: `${property}`,
        value: `${property}: ${parameters[property]}`
     }).prependTo('form');
}

该代码从我当前使用的测试 URL 创建此输入:

<input type="hidden" id="utm_content" class="urlparameter" name="utm_content" value="utm_content: comm">
<input type="hidden" id="utm_medium" class="urlparameter" name="utm_medium" value="utm_medium: email">
<input type="hidden" id="utm_source" class="urlparameter" name="utm_source" value="utm_source: sig">

从那里开始,我尝试使用 urlparameter 类遍历所有输入并获取值并将其附加到单个字符串的前一个输入值。现在我只是为了测试而尝试 console.log 它们。无论我做什么,它总是单独列出它们,或者我破坏了语法并且无法弄清楚如何修复它。

接近的唯一方法是:

var inputs = $(".urlparameter");
for(var i = 0; i < inputs.length; i++){
    let inputvalue = $(inputs[i]).val();
    console.log(inputvalue + ",");
}

这将创建以下内容:

utm_content:通讯,

utm_medium:电子邮件,

utm_source:信号,

我想要得到的是: utm_content: comm, utm_medium: 电子邮件, utm_source: sig,

如何让它们全部迭代并添加到一行中的单个字符串?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    使用.map().join()

    console.log(inputs.map((i, el) => el.value).get().join(','));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-19
      • 2012-02-02
      • 1970-01-01
      • 2013-05-15
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多