我想
如果我有对象
foo={
name:'omkar asish',
type:'person'
};
序列化-> foo
观察结果:name=omkar%20Aasish&type=person
预期结果:name=omkar asish&type=person
我使用过toQueryString()
,它在内部使用encodedURIComponent,因此我仍然得到编码的转义字符。
我还使用了仍然提供相同结果的查询字符串模块。
更新
foo对象有时包含带有underscore
的键
例如:foo = {
名称:“ omkar”,
类型:“人”
}
OR
foo = { _name:“ omkar”, _id = 1 }
我只想从您的表达式中过滤下划线,而不必考虑密钥
答案 0 :(得分:0)
我知道一定有更好的方法,但是仅仅因为我非常爱reduce
:
let foo = {
name:'omkar asish',
type:'person'
}
const keys = Object.keys(foo)
let res = keys.reduce((acc, cur,i) => `${acc}${cur}=${foo[cur]}${++i < keys.length ? '&' : ''}`, '')
console.log(res)
或者,如果您想为此提供功能:
function serialize(obj) {
const keys = Object.keys(obj);
return keys.reduce((acc, cur,i) => `${acc}${cur}=${obj[cur]}${++i < keys.length ? '&' : ''}`, '')
}
console.log(serialize({hello: 'world', it: 'works'}))