gpt4 book ai didi

javascript - js 将属性添加到 url param 对象

转载 作者:行者123 更新时间:2023-12-03 03:57:14 26 4
gpt4 key购买 nike

我有一个通过以下方式创建的网址:

let forwardBaseUrl = 'https://www.usergems.com/api/gmail/info?' + $.params({
event: 'Click forwarded link',
email: btoa(userEmail),
properties: {
forwardId: btoa(forwardId)
}
});

有没有一种简单的方法可以稍后向属性对象添加属性:我想要与此相同的结果:

let forwardBaseUrl = 'https://www.usergems.com/api/gmail/info?' + $.params({
event: 'Click forwarded link',
email: btoa(userEmail),
properties: {
forwardId: btoa(forwardId),
forwardUrl: 'http://google.at'
}
});

最好的解决方案是合并参数。与此类似(显然不起作用):

forwardBaseUrl.params.push({properties: { forwardUrl }})

最佳答案

首先,实际的JQuery方法是$.param() ,而不是$.params()

接下来,如果您重构代码来“构建”“params”对象并设置一个可以向对象添加属性的函数,那么您可以随时重新生成序列化结果:

var userEmail = "me@you.com";
var forwardId = "12345";

var props = {
forwardId: btoa(forwardId)
};

var paramObj = {
event: 'Click forwarded link',
email: btoa(userEmail),
properties: props
};

let forwardBaseUrl = 'https://www.usergems.com/api/gmail/info?' + $.param(paramObj);

console.log(forwardBaseUrl);

function changeProperties(prop, value, addRemove){
if(addRemove){
// Add new property to properties object
props[prop] = value;
} else {
// remove property from properties object
delete props[prop];
}
}

// Add a new property to the params "properties" object:
changeProperties("forwardUrl", "http://google.at", true);

// Update serialized params
forwardBaseUrl = 'https://www.usergems.com/api/gmail/info?' + $.param(paramObj);

console.log(forwardBaseUrl);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于javascript - js 将属性添加到 url param 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44890173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com