我有一个代表过滤器数组的对象。数组中的任何对象都有 id
和 value
。现在我想从这个数组生成查询字符串:
{ filtered: '[{"id":"tags","value":["soap"]}]',
limit: '10',
offset: '0',
sorted: '[]' }
输出应如下所示:
/item?filtered=%5B%7B%22id%22%3A%22tags%22%2C%22value%22%3A%5B%22soap%22%5D%7D%5D&limit=10&offset=0&sorted=%5B%5D
现在如何使用 ramda 生成这样的嵌套查询?
最佳答案
就我个人而言,我只会使用现有的库(有很多,在 npm 中搜索查询字符串
)。如果您自己使用特定的 ramda 来完成:
const qs = R.compose(
s => `?${s}`, // Prepend a ?
R.join('&'), // Join each segment of the query with '&'
R.map(R.join('=')), // Join the key-value pairs with '='
R.map(R.map(encodeURIComponent)), // encode keys and values
R.toPairs, // convert the object to pairs like `['limit', 5]`
)(input)
关于javascript - 使用 ramda 生成查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46752248/