我尝试编写一个函数,将 javascript 对象转换为 http 兼容的字符串。我实现了我想要做的事情,但我不知道为什么它会起作用。 我的最终功能是:
function paramify (p) {
var n = 0, r = "";
for (var i in p) {
r+=(n++==0?"":"&")+i+"="+p[i];
}
return r;
}
没有三元运算符的版本是:
function paramify (p) {
var n=0, r="";
for(var i in p){
if(n++!=0){
r+="&"
}
r+=i+"="+p[i]
}
return r;
}
示例 json 对象:
{"authToken":"aqsd2","username":"test","password":"1234"}
将变成:
authToken=aqsd2&username=test&password=1234
(如意向)
有人可以解释一下为什么这有效吗?没想到n已经是0的时候n++又变成0了。
最佳答案
这是前增量和后增量之间的差异。这个问题对此进行了解释:++someVariable Vs. someVariable++ in Javascript
关于javascript - 三元运算符的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19481728/