时长50min
let url = "http://www.domain.com/?user=jack&id=123&id=456&city=%E5%8C%97%E4%BA%AC&enabled";
// 实现一个函数: parseParam
// 输入解析后的结果为:
// {
// user: 'jack',
// id: [ 123, 456 ], // 重复出现的 key 要组装成数组,能被转成数字的就转成数字类型
// city: '北京', // 中文需解码
// enabled: true, // 未指定值得 key 约定为 false
// }
function parseParam(url: string) {
const paramsArr = url.slice(url.indexOf("?") + 1).split("&");
const map = new Map();
return reverseToRes(paramsArr, map);
}
function reverseToRes(strArr: string[], map: any) {
const res = {};
strArr.forEach((item) => {
const [key, value] = item.split("=");
// 判断key是否单次出现
if (map.get(key) !== undefined) {
res[key] = [map.get(key), reverse(value)];
} else {
res[key] = reverse(value);
}
map.set(key, value);
});
return res;
}
function reverse(value: string) {
return (`${parseInt(value)}` === value ? parseInt(value) : value) ?? false;
}
parseParam(url);
聊了项目和实习经历,确实感觉自己对于自己写的项目已经不那么熟悉了(虽然全是我写的),后面会花时间进行整理并且把失效的项目都重新进行部署。
OC
#滴滴##前端实习##面经#