如何仅使用lodash函数解析URL字符串而不使用任何回调?
防爆.
var rawUrl = “?a=b454&c=dhjjh&f=g6hksdfjlksd..”
Run Code Online (Sandbox Code Playgroud)
我目前的解决方案是
var answer = _.reduce(_.split(_.replace(rawUrl,'?',''), '&'), function(result, ev) {
(result[ev.split('=')[0]] || (result[ev.split('=')[0]] = [])).push(ev.split('=')[1]);
return result;
}, {});
Run Code Online (Sandbox Code Playgroud)
但是,这里还有一个回调.
sta*_*las 18
避免回调使用_.partial,_.partialRight以及其他lodash方法来处理函数
_.chain(rawUrl)
.replace('?', '') // a=b454&c=dhjjh&f=g6hksdfjlksd
.split('&') // ["a=b454","c=dhjjh","f=g6hksdfjlksd"]
.map(_.partial(_.split, _, '=', 2)) // [["a","b454"],["c","dhjjh"],["f","g6hksdfjlksd"]]
.fromPairs() // {"a":"b454","c":"dhjjh","f":"g6hksdfjlksd"}
.value()
Run Code Online (Sandbox Code Playgroud)
我知道您要求使用 lodash 解决方案,但也许阅读问题的人可能还想查看URLSearchParams,它帮助我使用比 ES6 方法更少的代码,并避免了 lodash。
const params = new URLSearchParams(window.location.search);
Run Code Online (Sandbox Code Playgroud)
访问名为“a”的查询参数
let a = params.get('a');
Run Code Online (Sandbox Code Playgroud)
https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams
| 归档时间: |
|
| 查看次数: |
12456 次 |
| 最近记录: |